嗨,我有以下HTML反覆在我的網頁(當然名字,並標識在每個實例的屬性的變化):toggleClass()對父母沒有工作,即使父被發現
<div class="funkyCheckBox">
<label for="uniqueName"> Whatever Text </label>
<input type="checkbox" name="uniqueName" id="uniqueName" />
</div>
什麼這與一些CSS做的是讓一個大按鈕的外觀,輸入是隱藏的,我根據輸入的檢查值添加一個類到div。我用下面的JavaScript/jQuery的這個
$(".funkyCheckBox").live("click, tap", function(event){
$(this).toggleClass("funkyCheckBoxActive");
var nextCheckBox = $(this).find("input[type=checkbox]");
nextCheckBox.prop("checked", !nextCheckBox.prop("checked"));
});
現在,這一切都很好,很好,但測試過程中我注意到,如果你點擊標籤文本未應用類和輸入的值不切換......因此,我增加了以下...
$(".funkyCheckBox label").live("click, tap", function(event){
$(this).parent("div").toggleClass("funkyCheckBoxActive");
var nextCheckBox = $(this).next("input[type=checkbox]");
nextCheckBox.prop("checked", !nextCheckBox.prop("checked"));
});
現在,這是偉大的點擊標籤文本現在改變輸入但是父DIV沒有采取/撥動「funkyCheckBoxActive」級的數值。我不確定爲什麼當我在回調函數中使用console.log($(this).parent("div"))
時,我正在輸出thom對象的屬性。有誰知道爲什麼我的toggleClass
沒有被應用?
你能不能把它回到它是怎麼和添加無標記>單擊用'$(本).parent(「格」)塊點擊()。 「裏面? –
如果我嘗試複選框沒有響應? –
是什麼讓你覺得班級沒有被改變?它可能是。如果問題是你沒有看到可視化的CSS變化,那很可能是CSS特殊性問題。在'toggleClass'之後嘗試'console.log($(this).closest('。funkyCheckBoxActive')。length)' – charlietfl