【问题标题】: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?

看起来不像,但有办法解决吗?

【问题讨论】:

  • 你能把你提到的代码贴出来吗?
  • 可能您使用的是click 而不是on

标签: 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

      【讨论】:

        猜你喜欢
        • 2012-10-06
        • 1970-01-01
        • 1970-01-01
        • 2013-06-10
        • 1970-01-01
        • 2020-05-24
        • 1970-01-01
        • 1970-01-01
        • 2021-12-21
        相关资源
        最近更新 更多