我想知道这是否可以在JQuery中使用。
我有一些Javascript代码可以动态创建DOM对象,以响应用户操作。其中一些DOM对象属于特定结构 - 容器始终具有相同的“类”属性。
我想要做的是,每次创建一个带有类“X”的DOM对象的新实例时,我都希望执行相同的Javascript代码。该代码将向该DOM对象添加“onclick”事件。
不幸的是,我不能只是在document.Ready()中放置指定onclick的代码,因为它绑定的对象是在document.Ready()执行后很久就已经创建的。
JQuery是否允许您设置将自动绑定到某种DOM对象的持久性绑定,即使它是在动态生成的?
答案 0 :(得分:8)
我想我已经找到了我自己的问题的答案,就在JQuery文档中,令人惊讶的是。
http://docs.jquery.com/Events/live#typefn
live( type, fn )
在jQuery 1.3中添加:将处理程序绑定到所有当前和未来匹配元素的事件(如单击)。也可以绑定自定义事件。
答案 1 :(得分:1)
你看过一个名为LiveQuery的jQuery插件吗?
从LiveQuery文档页面:
例如你可以使用 以下代码绑定click事件 到所有A标签,甚至任何A标签你 可能会通过AJAX添加。
$('a')
> .livequery('click', function(event) {
> alert('clicked');
> return false;
> });
将新A标签添加到您的 文档,Live Query将绑定 点击事件,没有别的 需要被召唤或完成。
答案 2 :(得分:0)
在jQuery核心中不可能(因为你可能已经意识到其他答案指的是一些插件)...如果你不一定需要像livequery
这样的所有功能,这可能是一个非常简单的任务/ p>
对于支持它们的浏览器 - 使用DOM level 2事件 - 'DOMNodeInserted':
http://www.w3.org/TR/DOM-Level-2-Events/events.html#Events-eventgroupings-mutationevents
答案 3 :(得分:0)
过去常常被'live','delegate'或有时'bind'所覆盖。这些现在被替换为'on',但是这里有一些警告:Javascript event binding persistence