Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/373.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/opencv/3.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 使用jQuery UI小部件工厂删除销毁事件的推荐方法_Javascript_Jquery Ui_Jquery_Jquery Ui Widget Factory - Fatal编程技术网

Javascript 使用jQuery UI小部件工厂删除销毁事件的推荐方法

Javascript 使用jQuery UI小部件工厂删除销毁事件的推荐方法,javascript,jquery-ui,jquery,jquery-ui-widget-factory,Javascript,Jquery Ui,Jquery,Jquery Ui Widget Factory,我正在使用jQuery UI小部件工厂构建jQuery插件 我的插件将自定义事件绑定到窗口 _subscribe: function() { $(window).on("dragger.started", function() { ... }); } 我想知道当插件的特定实例被破坏时,如何删除这些事件。如果我使用 destroy: function() { $(window).off("dragger.started"); } …然后这将打乱页面上插件的任何其他实例,因为它将删除所有

我正在使用jQuery UI小部件工厂构建jQuery插件

我的插件将自定义事件绑定到窗口

_subscribe: function() {
  $(window).on("dragger.started", function() { ... });
}
我想知道当插件的特定实例被破坏时,如何删除这些事件。如果我使用

destroy: function() {
  $(window).off("dragger.started");
}
…然后这将打乱页面上插件的任何其他实例,因为它将删除所有“dragger.started”事件

建议如何仅销毁与插件实例关联的事件


(提前)感谢您的帮助。

您使用什么来摆脱该实例?我相信jQuery remove()将删除绑定的事件。

您可以在一个事件中绑定多个名称空间。因此,为您的实例分配一个id,如

//this.id = 'dragger_' + guid_or_static_count
$(window).on("dragger.started." + this.id, function() { ... });
后来

$(window).off('dragger.' + this.id);

请看此

谢谢您的回复。这是如果我想销毁插件所做的更改,而不从DOM中删除原始元素——类似于jQueryUI插件的工作方式。例如$(“#myDiv”).myPlugin(“销毁”);是否希望重置为原始状态,如在x/y坐标或类似坐标中?要做到这一点,我认为您需要先将原始状态保存到某个地方,比如在JavaScript变量中,然后使用这些设置来设置属性、属性或css,或者在需要重置时更改的任何内容,对吗?