无法使用Jquery .on对动态创建的元素执行操作

时间:2012-05-27 10:52:52

标签: jquery bind live

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

使用现有元素,函数正在运行,使用动态元素,当单击链接时,将加载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!"); 
});

3 个答案:

答案 0 :(得分:1)

您可能在点击处理函数中遗漏了event声明。

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

答案 1 :(得分:1)

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

答案 2 :(得分:0)

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

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

http://jsfiddle.net/fbaWW/