jQuery点击功能并不适用于李的第一个孩子,而是#con;' .contracted'如同jsFiddle
<ul class="clearfix">
<li class="contracted">
<a href="#">
<span>L1<b>: Recognize a digit represents 10 times the value</b></span>
</a>
</li>
<li class="">
<a href="#">
<span>L2<b>: Recognize a digit represents 10 times the value</b></span>
</a>
</li>
</ul>
我也尝试在底部移动点击功能。但它不起作用。完整的工作示例在jsFiddle中给出。
$('.contracted').click(function () {
$(this).parent().attr('class', 'expanded');
$('ul.expanded li.activeLesson').attr('class', 'selected');
$('ul.expanded li:not(.selected)').attr('class', '');
});
答案 0 :(得分:3)
您的$('.contracted').click(...)
代码会在代码运行时将点击处理程序绑定到具有该类的任何元素 - 这不会自动适用于稍后添加该类的其他元素。如果您希望它在单击时具有contracted
类的任何li元素上工作,请使用通过.on()
设置的委托事件处理程序:
$('ul').on('click', 'li.contracted', function() {
...
});
这会将click处理程序绑定到所有ul
元素,但是当发生单击时,jQuery会检查所单击的项是否是ul
的后代,它与第二个参数中的选择器匹配,并且只调用你的功能,如果它。