我有一个场景,我有对 dom 元素的实际 dom 引用,并希望将事件委托给该 dom 引用。
var domRef = $('.selector');
// I want something like this.
$(document).on('click', domRef, function() {
});
我知道在上面的代码中以这种方式使用它是没有意义的,但我有一个我自己想要这种功能的用例。我很感激可以为我提供解决方案,而无需争论遵循这种做法的原因。
我有一个场景,我有对 dom 元素的实际 dom 引用,并希望将事件委托给该 dom 引用。
var domRef = $('.selector');
// I want something like this.
$(document).on('click', domRef, function() {
});
我知道在上面的代码中以这种方式使用它是没有意义的,但我有一个我自己想要这种功能的用例。我很感激可以为我提供解决方案,而无需争论遵循这种做法的原因。
只需手动处理委托:
var domRef = $('.selector');
$(document).on('click', function(e) {
// test if the click target is the same as your domRef
if ($(e.target).is(domRef)) {
// do special stuff for this node
}
});
从.on()
.
.on( events [, selector] [, data], handler(eventObject) )
selector:一个选择器字符串,用于过滤触发事件的选定元素的后代。如果选择器被
null
或省略,事件总是在到达被选元素时触发。
selector
需要是一个字符串。如果不是,则将其视为参数data
。您可以通过查看的源代码来确认这一点。.on()
一种解决方法可能是:
var $domRef = $('.selector');
$(document).on('click', function(evt) {
if($domRef.is(evt.target)) {
...
}
});
即使,性能方面它不是那么好。