2011-12-12 54 views
0

Sencha(触摸)中的按钮位于操作按钮中。该按钮在每个视图中具有不同的功能。当我更改视图控制器设置按钮的正确功能:Sencha触摸更好的练习关闭然后打开事件

myButton.on("click", function() {}); etc. 

当我切换视图我首先需要调用:

myButton.off("click"); 

,然后我可以重新绑定点击:

myButton.on("click", function() {}); 

如果我没有调用关闭函数,两个点击事件都会触发。是否有更快的方式来绑定新事件并冲刷所有其他绑定事件?

回答

0

您需要使用方法的addListener和的removeListener,例如:

var myFunction = function() { }; 
myButton.addListener("click", myFunction); 
myButton.removeListener("click", myFunction); 

对于这个工作,你需要通过同一个函数对象这两种方法,这意味着你不能声明函数在调用addListener时内联。

要删除所有的处理程序是很容易的:

myButton.clearListeners(); 
+0

开启/关闭不完全一样,因为上是一个的addListener的简写。 –

+0

然后您可以使用clearListeners(),它将删除所有附加的处理程序。 –

+0

为什么没有myButton.clearListeners('click');功能,在技术上难以实现吗?我的意思是建筑上的Sencha Touch。 – EralpB