如果dojo.connect中没有返回的“handle”,那么如何删除dojo连接的事件?
我的例子涉及动态地将一组事件分配给一组对象. (为了简单起见,事件是onclick和ondblclick,对象是表中的行)
因此,在页面设置事件连接到每一行(onclick,ondblclick).现在,根据用户需求/动作,需要从一行中删除一个事件.但是原来的手柄已经不再可用了.因为这样,以下将不起作用:dojo.disconnect(row,“onclick”,?? *).如何解决这个问题呢?
任何帮助当然是非常感激.
我通常做的是在创建它们时保存句柄,以便稍后断开连接.就像是:
var connects = {}; // then later on var node = dojo.create(....); // or someting else that gives you a node dojo.forEach( ['click','ondblclick' ],function( evt,idx ) { if (!connects[node.id]) { connects[node.id] = []; } connects[ node.id ][idx] = dojo.connect( node,evt,function(evt) { .... }); });
然后,你可以断开连接:
dojo.forEach( connects[node.id],function( handle ) { dojo.disconnect( handle ); });
在dojocampus上有一个类似的代码示例