2015-06-08 34 views
1

嘿家伙我对通用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销毁函数是一种常见做法?

谢谢。

Alex-z。

回答

1

销毁插件中的函数使开发人员能够重置或从元素中移除插件,将元素恢复到插件初始化之前。例如,如果您的图库插件在桌面上运行并且看起来很棒,但是您不希望在移动设备上使用,那么这非常有用。您可以在window上收听resize事件,并且窗口大小小于例如710px然后destroy该插件。这将删除所有添加的事件,撤销任何DOM操作,并将html元素恢复到插件初次初始化之前的状态(如果窗口大小大于710px,则初始化该插件)。

他们通常被认为是良好的做法。