首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >不需要的异步事件调度

不需要的异步事件调度
EN

Stack Overflow用户
提问于 2016-04-28 20:13:52
回答 1查看 43关注 0票数 0

我用jqxWidgets编写了一个'attributes setting‘窗口(滑块,颜色控件),以便设置视觉对象的属性(颜色,边框宽度等)。在每个jqxWidget上,我声明了一个函数,以便检测更改并将此更改应用于可视对象。所以,当用鼠标选择对象时,我禁用了回调:

$('#width').on('change', undefined);

然后我将jqxWidget强制转换为object值:

$('#width').jqxSlider('setValue', object.width);

然后我启用了事件触发器:

$('#width').on('change', the_width_on_change_callback);

但是似乎异步机制确实在强制取值之前启用了事件触发器,因此调用了the_width_on_change_callback函数。使用全局标志来过滤不起作用;如何解决这个问题?诚挚的问候。

EN

回答 1

Stack Overflow用户

发布于 2016-04-28 22:54:33

我已经尝试了这个解决方案,效果很好:

代码语言:javascript
复制
// 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');

在回调函数中:

代码语言:javascript
复制
$('#node_label').on('change', this.on_change_node_label);

..。

代码语言:javascript
复制
this.on_change_node_label = function (event) {
    event.stopPropagation();
    event.preventDefault();
    if ( ! this.classList.contains('enabled')) return;
    var value = $('#node_label').val();
    }
票数 0
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/36914355

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档