gpt4 book ai didi

cytoscape.js - cy.on ('select' ) 仅回调一次

转载 作者:行者123 更新时间:2023-12-03 03:46:12 28 4
gpt4 key购买 nike

我有一个 createTable 函数,它接收节点集合(或节点数组),然后我就可以绘制表格。

我现在正在切换到 cytoscape.js,我真的不知道如何正确监听我的 select 事件。

这样做:

cy.on('select', 'node', function(event){
window["selectedNodes"] = cy.$('node:selected');
});

我确实拥有绘制表格所需的所有信息,但我无法在其中调用 createTable 函数,因为它将多次调用我的函数(每个选定的节点一次)。我已经尝试过使用 cy.on 和 cy.once,但没有成功。

这是我的问题:

如何让我的选择事件有一个监听器,获取所有选定的节点并调用(仅一次)我的 createTable 函数?

我还可以使用以下方法获取所有选定的节点:

cy.elements('node:selected', console.log("my CallBack function"));

但由于它位于事件监听器之外(选择/单击),因此它无法按我的需要工作。

请提供任何帮助。

谢谢。

最佳答案

对回调进行去抖处理,以便如果多个事件相继出现,那么它们将被有效地批处理:

 var timeout;
cy.on('select', 'node', function(event){
clearTimeout( timeout );
timeout = setTimeout(function(){
window["selectedNodes"] = cy.$('node:selected');

// and so on...
}, 100); // may have to adjust this val

});

关于cytoscape.js - cy.on ('select' ) 仅回调一次,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/16677856/

28 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com