【问题标题】:Best way to add methods to jquery plugin将方法添加到 jquery 插件的最佳方法
【发布时间】:2012-10-24 12:56:12
【问题描述】:

“官方”文档http://docs.jquery.com/Plugins/Authoring#Namespacing 声明应该将方法添加到jQuery 插件中,如下所示。我还没有经常看到这种设计模式实现。看起来如果其他插件使用 var 方法,可能会有冲突。这真的是首选方法,还是我应该采取不同的做法?

(function( $ ){

 var methods = {
  method1: function( options ) {},
  method2: function( ) {}
 };

 $.fn.tooltip = function( method ) {
  if ( methods[method] ) {
   return methods[ method ].apply( this, Array.prototype.slice.call( arguments, 1 ));
  } else if ( typeof method === 'object' || ! method ) {
   return methods.init.apply( this, arguments );
  }
 };

})( jQuery );

【问题讨论】:

  • 我想由于我没有收到任何其他答案或 cmets,prodigitalson 的答案完全同意......

标签: jquery


【解决方案1】:

如果您想让这些方法可公开访问,那么可以,这是首选方法。如果插件非常复杂,另一个可能且有时建议的选项是实际创建一个完整的构造对象,而不仅仅是使用方法哈希。我不知道这真的需要再做,因为您可以在每个实例的根元素上使用.data() 管理状态,但它是我以前见过并且也很欣赏的模式。

此外,我最近因为很多插件而变得更糟……如果你打算开源它,请确保你至少包含一个 destroy 方法来解除你所做的一切。

【讨论】:

  • 感谢 prodigitalson。我保证会包含一个销毁方法!
猜你喜欢
  • 2018-08-10
  • 1970-01-01
  • 1970-01-01
  • 2018-02-14
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-02-26
  • 2010-11-12
相关资源
最近更新 更多