我想用其他类改变div类及其事件,我有这个:
<ul class="pants">
<li><a href="#" ><img src="images/1.png" alt="a" /></a></li>
<li><a href="#" ><img src="images/2.png" alt="b" /></a></li>
</ul>
<ul class="tshirts">
<li><a href="#" ><img src="images/3.png" alt="a" /></a></li>
<li><a href="#" ><img src="images/4.png" alt="b" /></a></li>
</ul>
JQuery:
$('.tshirts a').click(function(){
Alert('This is a pant');
});
我用它来改变课程:
$('.pants').attr('class','tshirts');
班级名称已更改,但是当我点击列表时,它不显示警报。因此不会使用此引发事件。有人可以帮助。谢谢大家。
答案 0 :(得分:2)
您需要将一个事件委托给静态父级或文档:
$(document).on('click', '.tshirts a', function(){
// alert code
});
由于dom中的a属性在dom准备好后已经更改,并且doc ready上的事件绑定将无法用于此元素,因此您必须将其委托给最近的静态父级或文档本身。
而不是更改属性,您可以添加/删除类名:
$('.pants').toggleClass('pants tshirts');
答案 1 :(得分:0)
因为您正在使用click事件,所以这将绑定到页面加载时的元素。
更新类名时,还需要在这些元素上绑定click事件:
$(document).on('click', '.tshirts a', function(e) {
// Do stuff here
});