我有一个像这样的事件处理程序注册代码
$("sel").each(function() {
(function(a){
var b = createb();
//do some more ops
a.addEventListener('evttype',handler1(a, b),false);
b.addEventListener('evttype',handler2(a, b),false);
})(this);
});
这将偶数“eventtype”与 (“sel”) 选择的所有元素 (a) 绑定(bind),并且还创建另一个元素 (b) 并绑定(bind)到它。当然,它只适用于静态元素。现在我想注册所有动态创建的“a”。我读到了有关 live() 和 delegate() 的两个 API。我想不出一种方法来完成这项工作。
$('sel').delegate("a", "evttype", function(){
var b = createb();
//do some more ops
b.addEventListener('evttype',handler2(a, b),false);
});
代码是错误的,因为每次处理事件时它都会创建一个“b”。这与第一段代码不同。我只需要创建元素“b”一次,并将相同的事件绑定(bind)到这两个元素,然后它们分别处理它们。是否有一个接口(interface)可以根据选择器匹配所有 future 的元素,或者是否有一种简单的方法使用 delegate()。
感谢您的宝贵时间。 bsr。
最佳答案
有http://api.jquery.com/live正是为了这个目的
关于javascript - 动态元素上的 Jquery 事件注册,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5918471/