如何在 dojo.on 事件名称的选择器中使用 :not
How to use :not in the selector for a dojo.on event name?
由于IE10不支持指针事件:无,以防止单击具有我的.disabled类的元素,如下所示:
.disabled {
pointer-events: none !important;
opacity: 0.4 !important;
cursor: auto;
}
我想我可以通过将类名添加到我的点击事件选择器来解决这个问题,如下所示:
on(node, ':not(.disabled):click', lang.hitch(this, this.myClickHandler));
不幸的是,似乎 :in :not 混淆了道场并且它不起作用。
如果真的是这样,那么我怎么能轻松地告诉 dojo 在节点没有 .disabled 类时(并且仅当)调用处理程序呢?我宁愿不必在处理程序本身中检查这一点,因为这意味着我们必须在数十个处理程序中添加代码(相同的代码)。
感谢您的任何建议
编辑:我根据另一个线程找到了此解决方法,您可以在其中捕获所有div 元素的点击,然后在禁用类的情况下停止传播。因此,它是所有按钮处理程序的单点维护。
query('div').on('click', function(event){
if (domClass.contains(event.currentTarget, 'disabled')){
event.stopImmediatePropagation();
}
});
dojo/on
使用:
作为事件委派的选择器和事件名称之间的分隔符,因此:not
可能会混淆它。 但是,您可以使用on.selector
自己构造自定义事件类型(当第二个参数是selector:type
字符串时,on
通常会自动为您执行的操作):
on(node, on.selector(':not(.disabled)', 'click'), ...);
工作示例:http://jsfiddle.net/yLqhok8t/
相关文章:
- :not选择器不适用于ul类-备选方案
- css:not选择器在section标记上的行为很奇怪
- jQuery.not()选择器无法与类一起工作
- 如何将getElementsByClassName与jQuery选择器一起使用:not()选择器
- Jquery选择器用于第一个'一、二、三和X'元素和:not()
- 在 jquery not 选择器中具有 2 个类的目标元素
- 如何在 dojo.on 事件名称的选择器中使用 :not
- 使用 :not 选择器与 .on() 结合使用
- jQuery选择器.not()不工作
- 可以't使用:not()选择器
- 什么是jQuery替代not(':not(选择器)')
- 为什么jQuery:not选择器属性没有'不适用于这种情况
- 如何使用:not()来针对具有特定父级的常规选择器
- 在函数的jquery中使用:not选择器
- 为什么JQuery NOT选择器在类型提交时失败,但在类型按钮上有效
- jQuery not选择器不工作
- jQuery:not选择器没有按预期工作
- not选择器可以和'this'一起使用吗?
- 为什么这个.not()选择器不工作?
- 如何在Cytoscape.js中使用:not选择器?(选择没有属性的节点)