框架代碼:
$.widget("myns.myplugin", { //默認參數 options: { }, //初始化,控件生命周期內只運行一次 _init: function () { }, //創建控件,控件生命周期內會運行多次 _create: function () { }, //設置參數 _setOption: function (key, value) { // In jQuery UI 1.8及以前用法 $.Widget.prototype._setOption.apply(this, arguments); // In jQuery UI 1.9及以后用法 this._super("_setOption", key, value); }, // 釋放控件 destroy: function () { // In jQuery UI 1.8及以前用法 $.Widget.prototype.destroy.call(this); // In jQuery UI 1.9及以后
} });
開發要點,控件內部方法以下划線(_)開頭。
以下來個簡單和按鈕監控,雖然這個不應該用JUI弄(簡單JQ插件擴展就可以了),但還是可以看用JUI應該怎么寫
控件代碼:
(function ($) { $.widget("myns.buttonMonitor", { //默認參數 options: { }, //初始化,控件生命周期內只運行一次 _init: function () { var self = this; $(self.element[0]).find('input:button').on('click', function (jevent) { alert("已監測到你按下了"+jevent.target.value+"按鈕!"); }); }, //創建控件,控件生命周期內會運行多次 _create: function () { }, //設置參數 _setOption: function (key, value) { // In jQuery UI 1.8及以前用法 $.Widget.prototype._setOption.apply(this, arguments); // In jQuery UI 1.9及以后用法 this._super("_setOption", key, value); }, // 釋放控件 destroy: function () { // In jQuery UI 1.8及以前用法 $.Widget.prototype.destroy.call(this); // In jQuery UI 1.9及以后 } }); })(jQuery);
調到代碼:
$(function () { $('#maincontainer').buttonMonitor();//maincontainer為按鈕的容器 });
效果可以看下
http://jsfiddle.net/leez20120909/7vGUE/embedded/result/
效果源代碼
http://jsfiddle.net/leez20120909/7vGUE/