簡體   English   中英

單擊后滾動到頁面頂部

[英]It scrolls to the top of the page after clicking

我有以下代碼來切換切換按鈕圖像:

$("#invio_scatola_on, #invio_scatola_off").click(function(){
    $("#invio_scatola_off").toggle();
    $("#invio_scatola_on").toggle();
});

執行后,瀏覽器將轉到頁面頂部。 為什么?

您可能需要防止單擊任何元素的默認操作:

$("#invio_scatola_on, #invio_scatola_off").on('click', function(e){
    e.preventDefault();
    $("#invio_scatola_off, #invio_scatola_on").toggle();
});

根據您提供的一些信息,如果瀏覽器滾動到頂部,則意味着您需要防止其默認行為。

檢查瀏覽器是否在當前URL 后面附加了 “某物” ...

您可以這樣防止:

$("#invio_scatola_on, #invio_scatola_off").click(function(event){

  // prvent default behavior
  event.preventDefault();

  $("#invio_scatola_off").toggle();
  $("#invio_scatola_on").toggle();
});

有關其工作方式的更多信息,請參見jQuery event.preventDefault()

我只能猜測,因為您沒有發布html代碼。 您的兩個元素很可能是帶有href="#"鏈接。 單擊處理程序后,將觸發常規操作,導航到站點上的錨點# (頂部)。

嘗試:

$("#invio_scatola_on, #invio_scatola_off").click(function(event){
    $("#invio_scatola_off").toggle();
    $("#invio_scatola_on").toggle();
    event.preventDefault();
});

看看是否有幫助。 有關使用jQuery取消事件的更多信息,請點擊此處:

http://api.jquery.com/event.preventDefault/

我認為您將帶有href的 錨定標記的單擊 綁定#,因此可以使用javascript的 preventDefault()

$("#invio_scatola_on, #invio_scatola_off").click(function(evt){
    evt.preventDefault();
    $("#invio_scatola_off").toggle();
    $("#invio_scatola_on").toggle();
});

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM