Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/378.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Sencha touch在比赛中有更好的练习_Javascript_Sencha Touch_Extjs - Fatal编程技术网

Javascript Sencha touch在比赛中有更好的练习

Javascript Sencha touch在比赛中有更好的练习,javascript,sencha-touch,extjs,Javascript,Sencha Touch,Extjs,我有一个按钮在Sencha(触摸)在一个行动按钮。此按钮在每个视图中具有不同的功能。当我更改视图时,控制器会为按钮设置正确的功能: myButton.on("click", function() {}); etc. 切换视图时,我首先需要调用: myButton.off("click"); 然后,我可以使用以下内容再次绑定单击: myButton.on("click", function() {}); 如果我不取消功能,两个单击事件都将触发。有没有更快的方法绑定新事件并刷新所有其他绑定的

我有一个按钮在Sencha(触摸)在一个行动按钮。此按钮在每个视图中具有不同的功能。当我更改视图时,控制器会为按钮设置正确的功能:

myButton.on("click", function() {}); etc. 
切换视图时,我首先需要调用:

myButton.off("click");
然后,我可以使用以下内容再次绑定单击:

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

如果我不取消功能,两个单击事件都将触发。有没有更快的方法绑定新事件并刷新所有其他绑定的事件?

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

var myFunction = function () { };
myButton.addListener("click", myFunction);
myButton.removeListener("click", myFunction);
要使其工作,您需要将相同的函数对象传递给这两个方法,这意味着您在调用addListener时不能内联声明函数

删除所有处理程序非常容易:

myButton.clearListeners();

on/off的作用完全相同,因为on是addListener的简写。然后可以使用clearListeners(),它将删除所有附加的处理程序。为什么没有myButton。clearListeners(“单击”);功能,是否在技术上难以实现?我指的是Sencha Touch的建筑设计。