我在包含一些子对象的对象上绑定(bind)了dragenter
事件。
$(document).on('dragenter', '#container', function(e) {
console.log('dragenter');
});
当我在周围拖动文件时,此事件反复触发。我所期望的是仅在输入
dragenter
元素时才触发#container
,而不是每个 child 也都触发。这是适当的行为吗?我该如何预防?
最佳答案
您可以测试触发事件的元素是否是容器:
var container = $('#container').get(0);
$(document).on('dragenter', '#container', function(event) {
if(event.target === container) {
console.log('dragenter');
}
});
或者,如果您不必使用事件委托(delegate):
$('#container').on('dragenter', function(event) {
if(event.target === this) {
console.log('dragenter');
}
});
关于每个 child 都会触发jQuery dragenter事件,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/10297476/