【问题标题】:jquery remove then append and do something onclickjquery删除然后追加并做一些onclick
【发布时间】:2012-12-19 05:53:32
【问题描述】:
在文档准备就绪时,我有一个 onclick 函数,它使用 class=project 更改某些元素的 css。如果我因为使用 .remove() 的另一个事件而使用 class=project 删除了这些元素,那么由于另一个事件使用 .append() 和 class=project 追加新元素,我的 onclick 事件不应该改变 CSS 仍然有效,因为新元素有 class=project?
看起来不像,但有办法解决吗?
【问题讨论】:
标签:
jquery
onclick
append
【解决方案1】:
我了解了 jQuery 的 .delegate,它确实是我想要的。我可以删除并附加我想要的所有内容。我希望这对其他人有所帮助。
【解决方案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
【解决方案3】:
尝试使用.detach 而不是.remove。但是,听起来您想使用委托。至少:
$(document).on('click', '.project', function () {
您应该尝试使用更具体的选择器,例如 .project 元素的容器的父级,而不是使用 document。