使用Jquery在页面添加元素时如何执行操作?

13
当我向类名为"myClass"的元素添加某些内容时,我希望能够调用该元素上的一个函数。
这大致应该是这样的:
jQuery(".error_message").live("load",function(){
  alert("test"+this);
});

... 除了这个不存在。

最好的方法是什么?


你是如何向DOM中添加元素的? - Colin
我通过ajax加载了一些新的HTML,并将其放入DOM。 - marcgg
有不同的方法可以添加这些元素,这就是为什么我想避免在这些函数上使用回调的原因。 - marcgg
这也是我一直想知道的关于Greasemonkey脚本的事情... - Kip
1个回答

17
你的问题的简短而直接的答案是“无法做到”。但是从你几分钟前的评论中,我看到你想以不同的方式添加元素,并有一个统一的处理这些新添加项的方法。我可以建议另一种方法吗?使用“trigger custom events”(触发自定义事件)
它的运作方式如下:在你加载错误消息元素的每个地方,在完成时添加一行代码。
 $('.error_message').trigger('load');

现在你的 .live('load'...) 将会起作用。


这是一个非常有趣的答案。我不确定这是否是我正在寻找的...它看起来有点hacky。但我不太了解jquery,无法分辨出hacky和amazing。那么,你认为这是一个好的实践吗? - marcgg
1
我来背书 - 在文档级别上,这里还有一篇关于事件池的好文章:http://www.michaelhamrah.com/blog/index.php/2008/12/event-pooling-with-jquery-using-bind-and-trigger-managing-complex-javascript/ - Mike Robinson
任何想法 .live() 是如何实现它的? - Kip
只有当我使用"loaded"而不是"load" v1.9.X时,这才对我起作用。 - JarrettV

网页内容由stack overflow 提供, 点击上面的
可以查看英文原文,
原文链接