在文档就绪时,我有一个onclick函数,它使用class = project更改某些元素的css。如果因为另一个事件使用.remove()而删除那些带有class = project的元素,然后使用.append()和class = project追加新元素,因为不同的事件,不应该更改css的onclick事件仍然有用,因为新元素有class = project?
它看起来不像是但是有办法吗?
答案 0 :(得分:2)
不需要再次使用事件处理程序委托或绑定新元素,因为它们在绑定时不存在。
$('.project').on('click',function(){...}) // <-- elements must exist at time of binding
$('body').on('click','.project',function(){...}) // <-- event handler is attached to an ancestor element - which is body in this example
// the ancestor element will now listen to events from elements with class=project and handle the events as they bubble up
答案 1 :(得分:1)
尝试使用.detach
代替.remove
。但是,听起来你想使用委托。至少:
$(document).on('click', '.project', function () {
您应该尝试使用更具体的选择器,而不是使用document
元素的容器的父级。
答案 2 :(得分:0)
我了解了jQuery的.delegate,它确实想要我想要的。我可以删除并附加我想要的所有内容。我希望这有助于其他人。