2012-10-24 77 views
3

「官方」文檔http://docs.jquery.com/Plugins/Authoring#Namespacing指出應該將方法添加到jQuery插件中,如下所示。我還沒有看到這種經常實施的設計模式。好像其他插件使用var方法,可能會有衝突。這真的是首選的方法,還是應該以不同的方式做?將方法添加到jquery插件的最佳方法

(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); 
+0

我想,因爲我沒有收到任何其他答案或評論,prodigitalson的答案是完全一致... – user1032531

回答

0

如果你想使這些方法公開性地可行,那麼是的,這是首選的方法。如果插件非常複雜,另一種選擇是可能的,有時候是可取的,實際上是創建一個完整的構造對象,而不僅僅是使用方法散列。我不知道這真的需要做了,因爲你可以管理每個實例的根元素使用狀態.data(),但它的模式可見並且以前也讚賞。

<咆哮>此外,我曾與很多插件的後期加重......請,如果你要打開它的源確保你至少包括destroy方法來拆散你們所做的一切。 </rant >

+1

謝謝prodigitalson。我會承諾包括一種銷燬方法! – user1032531

+0

w00t !!!!!!!!!!!!!!!!我真的不那麼*興奮,它該死的最小長度:-) – prodigitalson