2012-06-26 65 views
2

這裏是我的代碼,我有兩個複選框,並希望保持一個被禁止,直到另一個被啓用之前執行的默認操作函數在默認動作之前執行,並且當我在第一個點擊$('#remember').is(':checked')時返回false(舊值)而不是true。jQuery的。點擊()自定義函數

回答

4

您可以使用change事件,而不是:

$('#remember').live('change', function(event) { 
    if (this.checked) { 
     $('#keepIn').removeAttr('disabled'); 
    } else { 
     $('#keepIn').attr('disabled', 'disabled'); 
    } 
}); 

DEMO:http://jsfiddle.net/jP3NY/


NB:live方法已經過時了。您最好使用ondelegate

的jQuery的較新版本的解決辦法如下:

$('body').on('change', '#remember', function(event) { 
    $('#keepIn').prop('disabled', !this.checked); 
}); 

而不是body你可以使用任何#remember父元素。

+1

只需2美分佈魯夫請使用'.on'而不是'.live' :) –

+0

謝謝,解決了它,我會盡我所能接受答案。 @Tats_innit在生活vs問題上,我嘗試過,但.on方法不適用於我,請參閱此問題:http://stackoverflow.com/questions/11191966/jquery-triggerclick-not-working-with-jasmine -jquery – mornaner

+0

@Tats_innit我們不知道jQuery的版本是什麼; – VisioN