将jQuery live()应用于动态生成的元素
当页面加载时,我有以下javascript将jQuery live()应用于动态生成的元素,jquery,Jquery,当页面加载时,我有以下javascript $(document).ready(function() { $('.rounded').corner(); }); 它是一个简单的jQuery插件,可以绕过DIVs的各个角落 但是我的页面上也有一些动态加载的div,其中圆角没有被应用。我意识到我应该使用live()或livequery()函数,但我该如何应用这些函数呢?为什么不试试呢 $(div).corner(); 在它们生成时。您真正想要的是jQuerybind()方法。您必须更新实际
$(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将其附加到未来的元素。但我认为如果他改变了,你的解决方案会起作用的。绑定到。生活。猜猜触发器才是真正的工作