框架代码:
$.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/