【问题标题】:Jquery On Click Method Not Working for Newly Added Div [duplicate]Jquery On Click 方法不适用于新添加的 Div [重复]
【发布时间】:2015-07-16 01:39:19
【问题描述】:

我编写了一些代码,单击按钮可将新推文(div)添加到 div 列表中。请参阅下面的缩短代码。现在,即使新 div 与其他 div 具有所有相同的类。单击时不执行。

如何让 jquery click 方法适用于新添加的 div?

$('.buttonClass').on('click', function() {

    ....
              $newTweet.insertAfter('button');
    });



$('.douglascalhoun').on('click', function() {
          $("div").slideToggle();
          $("div.douglascalhoun").slideDown();
        });

【问题讨论】:

  • @ShaunakD 抱歉,我刚刚检查过了。
  • 我喜欢下面 Milind 的回答,刚刚试了一下,好像还可以。

标签: javascript jquery events event-handling


【解决方案1】:

您需要使用事件委托将事件附加到动态生成的元素:

$('body').on('click', '.douglascalhoun',function() {
      $("div").slideToggle();
      $("div.douglascalhoun").slideDown();
    });

【讨论】:

  • 谢谢米林德!欣赏它 - 这很有效:)
  • @realsimonburns:很高兴它有帮助。 :)
【解决方案2】:

幕后事件委托对动态生成的元素的工作方式如下

$(staticAncestors).on(eventName, dynamicChild, function() {
  // Your Function
});

【讨论】:

  • 很高兴知道 - 谢谢!
【解决方案3】:

当你在动态添加事件时使用下面的代码。

$(document).on('click', 'selector', function(){
     //from dynamic div
})

【讨论】:

    猜你喜欢
    • 1970-01-01
    • 2016-08-22
    • 1970-01-01
    • 1970-01-01
    • 2019-11-30
    • 2019-06-10
    • 1970-01-01
    • 2018-05-06
    • 1970-01-01
    相关资源
    最近更新 更多