2009-01-27 57 views
1

我在想,如果这在JQuery中是可行的。JQuery - 为每个新实例化的DOM对象执行代码

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

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

不幸的是,我不能只是把代码分配给document.Ready()中的onclick,因为它绑定的对象在document.Ready()执行后很快就被创建了。

JQuery是否允许您设置持久绑定,该绑定将被自动绑定到一种DOM对象,即使它是在飞行中生成的?

回答

0

这曾经被“活”,“代理”,或有时“绑定”覆盖。这些现在被替换为'开',但是有一些注意事项在这里讨论:Javascript event binding persistence

1

你看过一个名为LiveQuery的jQuery插件吗?

从的liveQuery文档页面:

例如,你可以使用 下面的代码click事件 绑定到所有的A标签,甚至你可能 通过AJAX添加任何一个标签。

$('a') 
>  .livequery('click', function(event) { 
>   alert('clicked'); 
>   return false; 
>  }); 

一旦你添加新的A标签你 文件,实况查询将结合 点击事件,并没有什么别的 需要被调用或完成。

+0

这是不同于“生活”功能(张贴如下)? – Jonathan 2009-01-27 06:07:22

+1

我认为这可能是一个插入主库的好插件的例子。我不知道live(),但是它看起来很相似。 – Ash 2009-01-27 06:09:59

8

我想我已经找到了我自己的问题的答案,就在JQuery文档中,令人惊讶的足够了。

http://docs.jquery.com/Events/live#typefn

live(type, fn) 

新增jQuery的1.3:绑定所有当前的处理程序,以一个事件(像click) - 和未来 - 匹配的元素。也可以绑定自定义事件。