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(a, b),false);         
        })(this);
});

这将偶数“eventtype”与 (“se​​l”) 选择的所有元素 (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/

相关文章:

用于查找元素 ID 的 jQuery if 语句

javascript - 无法从 <?!=JSON.stringify(dataFromServerTemplate) ?> 中包含的数据中选择特定元素

javascript - Canvas .fillText 方法似乎在 iPad 上不起作用

javascript - 调用 requestAnimationFrame 时 Canvas 无法找到上下文 - ES6

javascript - 基于单选按钮的Jquery函数是选择

javascript - 如何将 args 传递给事件处理程序?

javascript - 为什么我不能在 jQuery 中使用它的类和数据测试属性来选择 <td>?

javascript - jQuery 表单验证器

javascript - 引用错误: next is not defined

jquery - 无法在 if 语句中使用 $(this)