Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/389.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 如何在JS/jQuery中创建不同的交互模式?_Javascript_Jquery_User Interface - Fatal编程技术网

Javascript 如何在JS/jQuery中创建不同的交互模式?

Javascript 如何在JS/jQuery中创建不同的交互模式?,javascript,jquery,user-interface,Javascript,Jquery,User Interface,我试图创建一个用户界面,允许人们更改元素的交互类型 例如,在一种模式下,元素应响应单击事件,在另一种模式下,元素应仅响应拖动事件。在另一种模式中,交互类型可能是其他类型 起初我打算使用开关语句,但后来意识到这不会引起变化 我尝试过使用函数,但当模式改变时,它会对这两种类型的交互做出响应,在本例中是“单击”和“拖动”。我猜想这可能与调用同一函数的多个实例有关 我可以这样做,但我的方法会很混乱。我在寻找更清晰的答案 理想情况下,代码类似于(简单性方面) 我意识到AngularJS有$watch,这可

我试图创建一个用户界面,允许人们更改元素的交互类型

例如,在一种模式下,元素应响应单击事件,在另一种模式下,元素应仅响应拖动事件。在另一种模式中,交互类型可能是其他类型

起初我打算使用
开关
语句,但后来意识到这不会引起变化

我尝试过使用函数,但当模式改变时,它会对这两种类型的交互做出响应,在本例中是“单击”和“拖动”。我猜想这可能与调用同一函数的多个实例有关

我可以这样做,但我的方法会很混乱。我在寻找更清晰的答案

理想情况下,代码类似于(简单性方面)


我意识到AngularJS有
$watch
,这可能对这个项目很有用,但是我已经为这个项目承诺了jQuery。

真不敢相信它有多简单!在函数中,我只需要调用jQuery的
.off()
命令来删除该特定元素以前的所有事件侦听器

switch(modeType) {
   case 'click' :
     //Click stuff here
     break;

   case 'drag' :
     //Drag stuff here
     break;

   default :
     //Something else here

}