2010-03-13 40 views
1

是否可以停止自動preventDefault()在簡單的JQuery切換函數中應用?JQuery的切換功能,不會返回false?

$(".mydiv").toggle(
    function() { 
     $(this).addClass("blue"); 
    }, 
    function() { 
     $(this).removeClass("blue"); 
    } 
); 

上面的內容可以防止div內的元素正常響應點擊。

它不一定是toggle()函數 - 任何允許打開和關閉類並不返回false的東西都會很棒。

謝謝。

回答

1

的文件承認,這是一個限制:

由於.toggle()在內部使用點擊處理程序來完成工作,就必須解除綁定單擊清除附着與.toggle()行爲,所以其他點擊處理程序可以在交火中被抓住。該實現還會在事件上調用.preventDefault(),因此如果在元素上調用了.toggle(),則鏈接將不會被按下,並且按鈕不會被單擊。

來源:http://api.jquery.com/toggle/

這就是說,沒有內置的方法。令人高興的是,正如文檔中所說的那樣,「手工執行相同的行爲相對簡單」。在這種情況下:

$(".mydiv").click(function(){ 
    $(this).toggleClass("blue"); 
}} 

(瞭解更多關於toggleClass()

+0

神奇的感謝,這就是我一直在尋找。 – Tom 2010-03-13 07:20:31