好的,所以我對jQuery插件遊戲很陌生,我做了大量的閱讀,看起來好像有2700萬種方法來編寫jQuery插件。我想在我的插件中使用最簡潔的方式來處理事件。jQuery插件如何添加事件?
就拿這個基地插件模式:
;(function ($, window, document, undefined) {
var pluginName = 'MyPlugin';
var defaults = {
propertyName: "value"
};
function Plugin(element, options) {
this.options = $.extend({}, defaults, options);
this._defaults = defaults;
this._name = pluginName;
this.element = element;
this.init();
}
Plugin.prototype = {
init: function() {
// SOME INIT FUNCTION
},
someMethod: function(el, options) {
// DO SOMETHING ELSE
}
}
$.fn[pluginName] = function(options) {
return this.each(function() {
if (!$.data(this, 'plugin_' + pluginName)) {
$.data(this, 'plugin_' + pluginName, new Plugin(this, options));
}
else if ($.isFunction(Plugin.prototype[options])) {
$.data(this, 'plugin_' + pluginName)[options]();
}
});
}
})(jQuery, window, document);
然後我們有這個簡單的html:
<a href="a link to somewhere">My Link</a>
讓我們在我們的插件說我們想鏈接被點擊時提醒href和防止默認操作。顯然,這是一個非常愚蠢的例子,我想要做的事情更加激烈,所以請不要說'你不需要插件,'因爲這不是重點。
所以我們初始化我們對我們的鏈接插件:
$(document).ready(function(){
$('a').each(function(){
$(this).MyPlugin();
});
});
我不知道是否有添加一個點擊的方式:方法,只是有它自動調用。或者也許有某種內部事件綁定?
它看起來像(從插件b的方式oilerplate被寫入),你可以輸入$('a')。MyPlugin()來將它綁定到所有的元素。 – 2013-03-27 05:51:17
好吧,但這並不回答事件問題 – Tomas 2013-03-27 06:13:07