(function($){ var sVar_G = "这里是一个全局变量"; //jquery插件 $.fn.jAsk = function(options) { //如果当时对象为空,就将{}对当前对象 options = options || {}; //将插件对变量式方法 给当前的oOptions对象 var oOptions = $.extend({},jAskDefault,options); //回调方法 if(oOptions.fun && $.isFunction(oOptions.fun)) { oOptions.fun.call(this); } return this.each(function(){ alert("return"); $.jaskDialog(elements,options); }); }; $.jaskDialog = function(elements,options){ //如果elements为空就返回 if(!elements){ return; } //将插件对变量式方法 给当前的oOptions对象 var oOptions = $.extend({},jAskDefault,options || {}); //一些元素对象 $.o = { s: s, ele: elements, bg: eleBlank.size()? eleBlank: $("#jAskBlank"), out: eleOut.size()? eleOut: $("#wrapOut"), tit: $("#wrapTitle"), bar: $("#wrapBar"), clo: $("#wrapClose"), bd: $("#wrapBody") }; $.jaskDialog.load(); $.jaskDialog.ask(); $.jaskDialog.hide(); }; //将后台的对象与前面的对象并集后,在赋值给前面的对象; $.extend($.jaskDialog,{ hide:function() { //元素对导航式 $.o.bg.hide(); }, load:function() { alert("这就是一个Loading方法"); }, ask:function(message,sureCall,cancalCall,option) { $("#ask").click(function(){ if($.isFunction(cancalCall)) { cancalCall.call(this); } $("#ask").unbind("click"); }); } }); //这里插件是初始化变量 var jAskDefault = { title:"这是一个标题" }; })(jQuery);
<script> function fClick() { $("#click").jAsk({title:"这是一个新标题",fun:function(){alert("你好");}}); $.jaskDialog.load(); $.jaskDialog.ask("Message",null,function(){ alert("ask,呵呵"); },null); } </script> <body> <input id="click" value="点击我" type="button" οnclick="fClick();"/> <input id="ask" value="ASK" type="button" /> </body>