JQuery - 为每个实例化的新DOM对象执行代码

时间:2009-01-27 05:56:57

标签: jquery dom events on-the-fly

我想知道这是否可以在JQuery中使用。

我有一些Javascript代码可以动态创建DOM对象,以响应用户操作。其中一些DOM对象属于特定结构 - 容器始终具有相同的“类”属性。

我想要做的是,每次创建一个带有类“X”的DOM对象的新实例时,我都希望执行相同的Javascript代码。该代码将向该DOM对象添加“onclick”事件。

不幸的是,我不能只是在document.Ready()中放置指定onclick的代码,因为它绑定的对象是在document.Ready()执行后很久就已经创建的。

JQuery是否允许您设置将自动绑定到某种DOM对象的持久性绑定,即使它是在动态生成的?

4 个答案:

答案 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