比较jQuery(javascript?)等源点击的事件
Comparing jQuery (javascript?) Events for Equal Origin Click
我正在比较jQuery中的click
事件,看看它们是否从同一点击触发。现在我正在使用事件的timeStamp
来测试事件是否来自同一点击,虽然这几乎肯定会起作用,但我想知道是否有更好的方法。
例如,如果body
和header
都有一个点击事件,而我点击header
,它会冒泡到body
。测试触发的两个事件是否来自同一点击的最佳方法是什么?
在普通的JavaScript中,相同的事件对象将到达两个事件侦听器,因此您可以比较它们。 另一方面,jQuery 会将原始事件对象包装到每个侦听器的新规范化对象中,因此您必须改为检查它们的 .originalEvent
属性。
无论如何,我从不需要检查这一点。通常,您只想知道单击的元素是否与您绑定单击的元素相同:
document.body.addEventListener('click', function(e) {
if(e.target === this) {
// the click happened on the body itself
} else {
// the click bubbled up
}
}, false);
jQuery为事件委托提供了一个很好的机制,所以你甚至不需要if
:
$('body').on('click', '.someSelector', function(e) {
// This will only fire if an element with class 'someSelector'
// was clicked
});
相关文章:
- 选择onclick事件jquery
- 用于多个类事件Jquery的单个函数
- 激发滑块's幻灯片事件jquery ui
- 设置重复按钮以注册点击事件jquery
- 保留当前点击事件jquery
- 启动/停止按键事件jquery
- 在事件jquery中插入一个函数
- 删除克隆的事件JQuery
- typeahead选择事件(jQuery)的动态绑定
- 触发自定义事件 Jquery
- 绑定两次或更多次的事件 jquery
- 单击时的事件 jquery 不起作用
- 在鼠标悬停事件 jquery 上显示边框的内容
- 同时触发两个鼠标事件 jQuery
- 焦点事件 jquery 组合框/自动完成
- 如何在页面中捕获“正文”和“正文”事件[Jquery].
- 将对象传递给事件 jQuery
- 验证“取消”上的字段 单击Onbeforeunload事件JQUERY
- 复选框单击事件 jQuery 不起作用
- 口述事件jquery顺序