排除jQuery事件中的兄弟事件
Exclude siblings on jQuery Events
我正在创建一个使用悬停和单击添加元素事件的模板生成器。长话短说:当我点击或悬停在一个元素的兄弟元素上时,它会运行所有事件,从最深的兄弟元素开始,直到"最高"的父元素结束。
我已经设法找到了一个解决方案,尽管我认为它很脏:
var childclicked = false;
$('.container > .column').click(function(event) {
// do stuff
childclicked = true;
});
$('.container').click(function(event) {
// preventing code to be executed
if(!childclicked) {
// do stuff
}
});
因为兄弟节点的事件处理程序首先被调用,所以它设置了一个变量,该变量必须在父节点的事件处理程序中进行检查。
没有更好的方法来排除兄弟姐妹吗?
我猜你只需要阻止事件冒泡。您可以通过显式调用
轻松实现这一点event.stopPropagation();
或从事件处理程序本身返回false
。返回false隐式调用.stopPropagation()
和.preventDefault()
相关文章:
- 分派点击事件并保留击键修饰符
- 模糊事件的Javascript测试
- keyup事件处理程序更改焦点不适用于快速键入
- 使用 jQuery 的 .on 函数如何获取事件的原始元素
- 如何使Javascript动态html表及其上的事件
- 使用类从一个标记中双击事件
- 如何在未直接触发的情况下停止事件
- 如何在elfinder插件(一个文件管理器插件)上获得上传前事件
- 对iPad上的点击事件反应缓慢
- 事件和状态
- Fancybox是否将Click事件静音
- 主干-不管怎样,检查事件以前是否绑定过
- 从控制器返回后Ajax启动事件激发
- 如何从画布上的某个移动事件中获取X和Y
- Jquery:未触发select事件
- JsFiddle上的鼠标事件不起作用
- 只覆盖箭头键滚动事件
- 排除jQuery事件中的兄弟事件
- 从此特定父类查找兄弟类以执行事件
- 我应该如何改变一个变量为下一个兄弟点击事件与jquery