嘿伙计们我对js和jquery一般都是新手,我只是通过一个图库插件的插件代码,我可以跨越名为_loadevents的函数,它具有以下内容,见下文:
this.$navPrev.on('click.gallery', function (event) {
});
this.$navNext.on('click.gallery', function (event) {
});
this.$wrapper.on('webkitTransitionEnd.gallery transitionend.gallery OTransitionEnd.gallery', function (event) {
});
现在$navPrev
,$navNext
和$wrapper
显然是一些HTML元素,现在我的问题是关于我在同一个插件中遇到的另一种方法,如下所示:
destroy: function () {
// console.log('inside destroy');
this.$navPrev.off('.gallery');
this.$navNext.off('.gallery');
this.$wrapper.off('.gallery');
}
现在我看到如果调用此函数,将取消所有事件处理程序。现在,有人可以告诉我这样一个功能的必要性,它是否提高了插件的效率?如何或何时使用这样的函数,为插件中的事件编写e destroy函数是一种常见的做法吗?
谢谢。
Alex-z。
答案 0 :(得分:1)
在插件中销毁函数使开发人员能够重置或从元素中删除插件,在插件初始化之前将元素恢复到。例如,如果您有一个可在桌面上运行且看起来很棒的图库插件,但您不希望它在移动设备上,则此功能非常有用。您可以在resize
上收听window
事件,如果窗口大小小于710px然后destroy
插件。这将删除所有添加的事件,撤消任何DOM操作,并将html元素恢复到插件首次初始化之前的状态(转向,如果窗口大小大于710px,则初始化插件)。 p>
他们通常被认为是良好的做法。