我是一個jQuery noob,似乎我總是會一直試圖讓這個簡單的東西工作。jQuery:如果複選框被選中,toggleClass
我想要的是,當複選框被選中時,用display: none;
隱藏div。
這是jFiddle的例子,我正在搞一堆。
感謝您的幫助,或其他解決方案:)
我是一個jQuery noob,似乎我總是會一直試圖讓這個簡單的東西工作。jQuery:如果複選框被選中,toggleClass
我想要的是,當複選框被選中時,用display: none;
隱藏div。
這是jFiddle的例子,我正在搞一堆。
感謝您的幫助,或其他解決方案:)
我卡里姆同意,如果你只需要隱藏/顯示,使用.toggle(bool)
,如果你的例子被簡化,你需要一個類,使用.toggleClass("class", bool)
,像這樣:
$(function(){
$("#checkbox4").change(function() {
$("#checkout-shipping-address").toggleClass("show-hide", this.checked)
}).change();
});
You can test it out here,最後的.change()
調用是使頁面首次加載時的狀態匹配,here's what I mean。
試試下面的代碼:
$(function(){
$('#checkbox4').change(function() {
$("#checkout-shipping-address").toggleClass("show-hide");
});
});
您需要將change
或click
事件,以反應進行綁定。
有沒有需要一個show-hide
類。只是傳遞一個布爾值切換,並通過使用triggerHandler
設置div的初始狀態,它可以讓你火綁定到一個元素的事件處理程序,而不會實際影響該元素的狀態:
$(document).ready(function() {
$("#checkbox4").click(function() {
$("#checkout-shipping-address").toggle(this.checked);
}).triggerHandler('click');
});
哇,謝謝!很好的解釋和謝謝,例如。變更電話正是我所追求的。 :) – Kyle 2010-09-06 13:08:19
我的印象是,IE不能處理複選框上的更改,並且在使用空格鍵在某些瀏覽器中選中/取消選中時,它不一定會被解僱。相反,我會使用'click'並且用'triggerHandler('click')'設置初始狀態。請看我的答案。 – karim79 2010-09-06 13:16:13
@ karim79 - 這是我第一次聽說IE和「改變」......它在1.4.2之前有*冒泡*變化事件(造成'.live()'問題),但是沒有實際的複選框,我見過或聽說過。我的上面的演示在IE8/7中沒有任何問題,我沒有6個方便的測試,但我沒有看到它會失敗,'onchange'在API中處於非常基本的級別:) – 2010-09-06 13:21:21