不需要的异步事件调度
unwanted asynchronous event dispatching
我使用 jqxWidgets(滑块、颜色控制)编写一个"属性设置"窗口,以便设置视觉对象属性(颜色、边框宽度等)在每个 jqxWidget 上,我声明了一个函数,以便检测更改并将此更改应用于可视对象。因此,当用鼠标选择对象时,我禁用回调:
$('#width').on('change', undefined);
然后我强制 jqxWidget 到对象值:
$('#width').jqxSlider('setValue', object.width);
然后我启用了事件触发器:
$('#width').on('change', the_width_on_change_callback);
但似乎异步机制确实在强制值之前启用了事件触发器,因此调用了the_width_on_change_callback
函数。使用全局标志进行过滤不起作用;如何解决这个问题?此致敬意。
我已经尝试了这个效果很好的解决方案:
// on selection
$('#node_label')[0].classList.remove('enabled');
// force widget value
$('#node_label').jqxInput('val', node.label );
// enable event processing
$('#node_label')[0].classList.add('enabled');
在回调函数中:
$('#node_label').on('change', this.on_change_node_label);
。
this.on_change_node_label = function (event) {
event.stopPropagation();
event.preventDefault();
if ( ! this.classList.contains('enabled')) return;
var value = $('#node_label').val();
}
相关文章:
- 如果在对象上触发了dispatchEvent,我如何才能找到如何侦听它以及在哪里调度事件
- reactJs redux:如何对用户事件调度操作并将操作与化简器和存储链接
- 不需要的异步事件调度
- React/flux - 子组件用户事件 - 是否应通过调度程序路由所有内容
- 如何克隆或重新调度 DOM 事件
- 触发事件和调度事件的区别是什么
- 如何在元素上调度双击事件
- 从非DOM对象内部调度和处理自定义事件
- 调度键盘事件不'不能在JavaScript中工作
- 如何在全局和requireJS对象内部调度事件
- IE 11 调度事件
- 调度事件在 Chrome 中,但在 IE11 中不是
- jQuery 停止执行,直到调度事件
- 如何在Paper.JS中手动调度事件
- 协调视图/调度事件
- Javascript MVC+使用jQuery侦听和调度事件
- 手动调度事件DOMContentLoaded
- JS调度事件
- 用数据调度事件
- 普通Javascript对象可以调度事件吗?还是只有DOM节点才有可能