This question already has answers here:
jQuery .on function for future elements, as .live is deprecated [duplicate]
(2 个回答)
How to apply live() like feature for JavaScript appended DOM elements
(4 个回答)
8年前关闭。
任何模拟或替代实时 jquery 功能?
我需要使用没有 JQuery 和 JQuery.Live 的实时函数的替代方法。
特别是我需要为页面上的 future 元素使用 addEventListner 。
有什么替代方案吗?
谢谢
然后你可以像下面这样使用它:
编辑:下面的评论很棒。这是修订版:
将它与 css 选择器一起使用
jsFiddle:http://jsfiddle.net/49aJh/2/
(2 个回答)
How to apply live() like feature for JavaScript appended DOM elements
(4 个回答)
8年前关闭。
任何模拟或替代实时 jquery 功能?
我需要使用没有 JQuery 和 JQuery.Live 的实时函数的替代方法。
特别是我需要为页面上的 future 元素使用 addEventListner 。
有什么替代方案吗?
谢谢
最佳答案
像下面这样的东西应该工作:
var live = function(elm, eventType, callback) {
document.addEventListener(eventType, function(event) {
if(event.target === elm) {
callback.call(elm, event);
}
});
};
然后你可以像下面这样使用它:
var element = document.getElementById('test');
live(element, 'click', function() {
// handle click event here
});
编辑:下面的评论很棒。这是修订版:
var live = function(selector, eventType, callback) {
document.addEventListener(eventType, function(event) {
var elms = document.querySelectorAll(selector),
target = event.target || window.event.srcElement;
for (var i=0; i<elms.length; i++) {
if (elms[0] === target) callback.call(elms[i], event);
}
});
};
将它与 css 选择器一起使用
live('#test', 'click', function() {
// handle click event here
});
jsFiddle:http://jsfiddle.net/49aJh/2/
关于javascript - 为当前元素和 future 元素添加事件监听器的实时 jquery 函数的任何仿真或替代方法?,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/16694269/