2011-12-12 64 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