我有一個列表。在那裏我有一些複選框。我試圖以兩種不同的方式檢查複選框。一種是默認方式,另一種是當我點擊「李」時。代碼的鏈接是here複選框失去其默認功能
當我點擊李,複選框檢查正確,但是當我點擊複選框本身,它不。可能是什麼問題?
我有一個列表。在那裏我有一些複選框。我試圖以兩種不同的方式檢查複選框。一種是默認方式,另一種是當我點擊「李」時。代碼的鏈接是here複選框失去其默認功能
當我點擊李,複選框檢查正確,但是當我點擊複選框本身,它不。可能是什麼問題?
你可以通過檢查點擊事件的目標來解決這個問題。如果它不是li
元素,請不要運行您的代碼。
$("#divclass li").click(function(e){
if(e.target.nodeName == "LI") {
//Your code
}
});
查看此updated fiddle爲例。
您可以使用標籤而不是js。 參見here
<div class="divclass" id="divclass">
<ul>
<li><label><input type="checkbox" name="checkclass" class="checkclass" value="1" />Morbi in sem quis dui placerat ornare. Pellentesque odio nisi, euismod in, pharetra a, ultricies in, diam. Sed arcu. Cras consequat.</label></li>
<li><label><input type="checkbox" name="checkclass" class="checkclass" value="2" />Praesent dapibus, neque id cursus faucibus, tortor neque egestas augue, eu vulputate magna eros eu erat. Aliquam erat volutpat. Nam dui mi, tincidunt quis, accumsan porttitor, facilisis luctus, metus.</label></li>
<li><label><input type="checkbox" name="checkclass" class="checkclass" value="3" />Phasellus ultrices nulla quis nibh. Quisque a lectus. Donec consectetuer ligula vulputate sem tristique cursus. Nam nulla quam, gravida non, commodo a, sodales sit amet, nisi.</label></li>
<li><label><input type="checkbox" name="checkclass" class="checkclass" value="4" />Pellentesque fermentum dolor. Aliquam quam lectus, facilisis auctor, ultrices ut, elementum vulputate, nunc.</label></li>
</ul>
</div>
@clyish,你的回答也有幫助 – user781178
這是有效的。爲什麼我的代碼無法正常工作。我已經在LI上使用click事件了嗎?我的意思是$(「。divclass li」)。點擊(...? – user781178
,這是因爲複選框被切換兩次,並保持它的狀態......你可以在'patrick'中看到答案 – Vivek
你的代碼不工作,因爲當你點擊一個複選框(這是一個'li'元素的子元素)時,複選框將按照正常複選框的行爲進行檢查。但是,因爲複選框是在'li'裏面,所以'''''點擊事件也會運行,並且複選框再次被取消選中。 –