禁用按鈕工作正常,但是我要實現的目的不是爲了維護而使用ID,因爲此功能會重複多次。現在發生的事情是,當我選擇複選框時,由於按鈕具有選擇器,所以兩個按鈕都被禁用。我試圖使用.siblings()來啓用另一個,但我迷路了。這是fiddle。任何幫助?謝謝。如果複選框被選中,禁用「添加」按鈕
$('.remove-attr').siblings().attr('disabled', 'false');
禁用按鈕工作正常,但是我要實現的目的不是爲了維護而使用ID,因爲此功能會重複多次。現在發生的事情是,當我選擇複選框時,由於按鈕具有選擇器,所以兩個按鈕都被禁用。我試圖使用.siblings()來啓用另一個,但我迷路了。這是fiddle。任何幫助?謝謝。如果複選框被選中,禁用「添加」按鈕
$('.remove-attr').siblings().attr('disabled', 'false');
我假設你想啓用/禁用只涉及到的複選框按鈕:
$('.is-selected').on('change', function() {
$(this).closest('label').next('.remove-attr').prop('disabled', this.checked);
});
選擇元素時,你只需要更加小心,不是選擇每個實例,而是隻針對特定的實例。
我用$(this).parent().parent().find('.remove-attr')
,在這裏看到:http://jsfiddle.net/XEdcd/4/
這應該工作。在你的點擊功能裏面,你要確保你引用了被點擊的元素,而不是所有帶有類的元素。然後有很多方法可以引用相關的按鈕。這可能是有用的:http://api.jquery.com/category/traversing/
$('.remove-attr').removeAttr('disabled');
$('.is-selected').click(function() {
if ($(this).is(':checked')) {
$(this).parents('.controls').find('.remove-attr').attr('disabled', 'false');
} else {
$(this).parents('.controls').find('.remove-attr').removeAttr('disabled');
}
});