如何将jquery函数绑定到动态DOM

我在我的页面上使用jquery文件上传function,如下所示:

$('.new-variant-image') .fileupload({ dataType: 'script', add: function(e, data){ } }); 

但是DOM类“new-variant-image”是在页面加载后动态创建的,所以它不起作用。 我搜索了使用“on”和“live”绑定动态事件的方法,但在这种情况下不会让它工作。

任何帮助将不胜感激。

编辑

之后使用AJAX创建DOM元素“new-variant-image”,如果我在创建元素之后放置代码,它就可以工作。 但是我想避免这种情况,因为当我多次使用ajax调用该函数时,它会导致浏览器挂起大约2到3秒。

使用函数的回调

 $('.new-variant-image').fileupload({ dataType: 'script', add: function(e, data), done: $('.new-variant-image').click(function(){ }) { 

你的代码$('.new-variant-image').fileupload({ dataType: 'script', add: function(e, data){应该在元素创建代码之后….

我不知道你是如何创建元素的(使用ajax或其他东西)…

什么乔治 – 它建议应该工作……

虽然回答这个问题的时间很晚,但是从jQuery 1.7开始,你可以使用jQuery.fn.on 。

 $(document).on("click", ".new-variant-image", function () { $('.new-variant-image') .fileupload({ dataType: 'script', add: function (e, data) { } }); }) 

这将为所有当前元素附加事件处理函数,或者使用类new-variant-image 附加动态附加元素。