Javascript 动态元素上的Jquery事件注册

Javascript 动态元素上的Jquery事件注册,javascript,jquery,Javascript,Jquery,我有这样一个事件处理程序注册码 $("sel").each(function() { (function(a){ var b = createb(); //do some more ops a.addEventListener('evttype',handler1(a, b),false); b.addEventListener('evttype',handler2

我有这样一个事件处理程序注册码

$("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)绑定,还将创建另一个元素(b)并绑定到它。当然,它只适用于静态元素。现在我想注册所有动态创建的“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”一次,并将同一事件绑定到这两个元素,它们分别处理它们。是否有基于选择器匹配所有未来元素的接口,或者是否有使用delegate()的简单方法

谢谢你抽出时间。
bsr.

正是出于此目的,您应该在创建
b
元素之前检查它是否存在

$('sel').delegate("a", "evttype", function(){
  if(!b_exists()){
    var b = createb();          
    //do some more ops
    b.addEventListener('evttype',handler2(a, b),false); 
  }
});
但是,为了让您了解
b_exists()
方法的逻辑,我们需要您的标记和js

希望这有帮助。
干杯

如果您使用的是jQuery,为什么要使用
addEventListener
?这是真的。。我可能正在使用bind()或类似的东西。。我对jQuery不太熟悉,请不要认为我想在上面的代码中添加任何约束。。请建议最有效的方法使其生效。Raine的答案(或使用
.delegate()
)正是您想要的。您是否有无法使用的特定代码(请向我们显示实际的标记和实际的JavaScript)?