我想在选择事件上添加侦听器,但是通过下面的代码实现了两次触发事件。只有javascript核心onClick事件被正确触发一次。
dojo.connect(myTabCont, "onButtonClicked", function(tabList){
console.log(tablist);
});
dojo.connect(myTabCont, "selectChild", function(tabList){
console.log(tablist);
});
//work fine - one click one fire
dojo.connect(myTabCont, "onClick", function(event){
console.log(event);
});
是否有功能或错误?或者你可以帮助解决这些功能或如何打破这个功能||错误。
由于
答案 0 :(得分:0)
听起来像个臭虫。 selectChild()是幂等的,因此调用它两次没有任何害处(除了像你这样连接它的人:-)),这就是为什么我们没有注意到这个问题。
你可以监视[widgetId] -selectChild主题,它只会触发一次,或者在foo == myTC.selectedChildWidget时忽略myTC.selectChild(foo)调用。
答案 1 :(得分:0)
你可以监控 [widgetId] -selectChild主题,其中 只会发射一次,或者只是忽略 myTC.selectChild(foo)在foo时调用 == myTC.selectedChildWidget。
Stack_Container.selectChild方法中旧选择和新选择之间的等号检查是可以的!
没有错误。注册的“selectChild”被调用两次,这是正确的行为。第一次调用“selectChild”是由用户触发的事件,第二次调用是编程式的,当StackContainer检查old-selection NOT是否等于new-selection并且明确地激活onIlick上的tabItem时。