将jQuery live()应用于动态生成的元素

将jQuery live()应用于动态生成的元素,jquery,Jquery,当页面加载时,我有以下javascript $(document).ready(function() { $('.rounded').corner(); }); 它是一个简单的jQuery插件,可以绕过DIVs的各个角落 但是我的页面上也有一些动态加载的div,其中圆角没有被应用。我意识到我应该使用live()或livequery()函数,但我该如何应用这些函数呢?为什么不试试呢 $(div).corner(); 在它们生成时。您真正想要的是jQuerybind()方法。您必须更新实际

当页面加载时,我有以下javascript

$(document).ready(function()
{
  $('.rounded').corner();
});
它是一个简单的jQuery插件,可以绕过
DIV
s的各个角落

但是我的页面上也有一些动态加载的div,其中圆角没有被应用。我意识到我应该使用
live()
livequery()
函数,但我该如何应用这些函数呢?

为什么不试试呢

 $(div).corner();

在它们生成时。

您真正想要的是jQuery
bind()
方法。您必须更新实际附加有问题的
div
的代码,但其不足之处在于您必须在添加时调用
trigger(youreventcustomname)

以下是您的用例示例:

$(function(){

  // the bind call
  $('.rounded').bind('divbox',function(){
    $(this).corner();
  });

  //the dom add
  $('html').append('<div></div>').addClass('rounded').trigger('divbox');
});
$(函数(){
//绑定调用
$('.rounded').bind('divbox',function(){
$(this.corner();
});
//dom添加
$('html').append('').addClass('rounded').trigger('divbox');
});
更多阅读:


试试这可能会有帮助

   $('.rounded').livequery(function(){ 
        $(this).corner(); 
    });

这意味着每次生成$(div).corner()时都必须添加它们,对吗?我想把这段代码放在一个地方。@ebae是的,您必须在生成它们之后注册事件。如果在生成页面之前定义了事件,那么这将不起作用。如果通过ajax添加div,则可以使用
$('.rounded').corner()success:
中,他的问题是其他jquery调用会在页面上动态加载元素。使用.bind仅将事件绑定到页面上当前的元素,而不是与选择器匹配的未来元素。您必须使用.live将其附加到未来的元素。但我认为如果他改变了,你的解决方案会起作用的。绑定到。生活。猜猜触发器才是真正的工作