【问题标题】:Can't fire action on dynamically created elements with Jquery .on无法使用 Jquery .on 对动态创建的元素触发操作
【发布时间】:2012-05-27 10:52:52
【问题描述】:

与许多用户一样,我似乎无法将操作绑定/触发动态创建的元素。

使用我现有的元素,该函数正在运行,使用动态元素,当我的链接被点击时,url 被加载。 (url不重要,在写其他动作之前是为了我的测试)

我错过了什么? 我正在使用 jQuery 1.7.1

谢谢!!

jQuery('.image-widget-data').append('<a href="http://www.google.com">Select Files</a>');

jQuery("body").on("click", ".image-widget-data a", function(){ 
   event.preventDefault();             
   alert("Goodbye!"); 
});

【问题讨论】:

  • 如果您将event 作为处理程序参数应该可以正常工作:jsfiddle.net/meA3Q

标签: jquery bind live


【解决方案1】:

您的点击处理函数中可能缺少event 声明。

jQuery("body").on("click", ".image-widget-data a", function(event){ 
                                                            ^^

【讨论】:

    【解决方案2】:
    jQuery(".image-widget-data").on("click", "a", function( event ){ 
       event.preventDefault();             
       alert("Goodbye!"); 
    });
    

    【讨论】:

      【解决方案3】:

      您忘记将事件作为参数传递

      jQuery("body").on("click", ".image-widget-data a", function(event){ 
         event.preventDefault();             
         alert("Goodbye!"); 
      });
      

      http://jsfiddle.net/fbaWW/

      【讨论】:

      • 阿法夫!必须停下来参加派对;)
      猜你喜欢
      • 1970-01-01
      • 2015-12-18
      • 1970-01-01
      • 2013-02-22
      • 2014-05-01
      • 1970-01-01
      • 1970-01-01
      • 2013-01-21
      • 2017-08-02
      相关资源
      最近更新 更多