2012-05-31 202 views
0

後,我有這樣的代碼來切換開關按鈕圖像:它滾動到頁面頂部點擊

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

在執行時,瀏覽器轉到頁的頂部。爲什麼?

+1

也發佈按鈕的HTML。有'href =「#」'有''元素嗎? – adeneo

+0

在頁面頂部是否有任何元素具有相同的ID? –

+0

爲什麼你知道接受答案?D –

回答

3

你可能需要防止你點擊任何元素的默認動作:

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

假設最新的jQuery魔術使用'on';) – Zuul

+0

+1來優化代碼並使用最新的jQuery魔術與「on」;-) – acme

1

根據您提供的少數信息,如果瀏覽器滾動到頂部,這意味着您需要防止其默認行爲。看到

檢查瀏覽器是否爲附加 「東西」 到當前的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()更多有關它如何工作的信息。

1

我只能猜測,因爲你沒有張貼您的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/

1

我想你錨綁定點擊標籤與HREF所以,你可以使用的preventDefault() of javascript like:

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