两种写法对比:

第一种:

;(function($){
$.fn.myplugin = function(op,params){
if (typeof op == 'string'){
return $.fn.myplugin.methods[op](this,params);
}
//默认参数
var settings = {
"text" : "hehe",
"color" : "red"
}
settings = $.extend(settings,op);//参数合并
return this.each(function(){
$(this).text(settings.text).css("color",settings.color);
});
};
//暴露的API
$.fn.myplugin.methods = {
show : function(selector,params){
showText();
},
getValue : function(selector,params){
console.log("value is"+ params);
}
};
//静态方法
function showText(param){
alert(param);
}
})(jQuery);
控件调用:
var m = $(".b").myplugin({
"text" : "haha",
"color" : "yellow"
});
m.myplugin("show","zhangsan");
m.myplugin("getValue","zhangsan");
第二种:
;(function($){
var $target;
var settings = null;
$.fn.myPlugin = function(options){
$target = $(this);
if($.fn.myPlugin.methods[options]){
return $.fn.myPlugin.methods[options].apply(this,Array.prototype.slice.call(arguments,1));
}else if(typeof options == "object"||!options){
return $.fn.myPlugin.methods.init.apply(this,arguments);
}else{
$.error("Methods"+options+"does not exist on jQuery.myPlugin");
}
};
$.fn.myPlugin.methods = {
init : function(op){
var defualt = {
width : 100,
heght : 50
};
settings = $.extend(defualt,op);
myPluginInit(settings,$target);
bindEvents();
return $target;
},
getValue : function(){
return "000";
}
};
function myPluginInit(settings,$target){
$target.width(settings.width);
$target.height(settings.height);
}
function bindEvents(){
$(this).click(function(){
alert("click");
});
}
})(jQuery);
												

jQuery控件有所感悟的更多相关文章

  1. 【番外篇】ASP.NET MVC快速入门之免费jQuery控件库(MVC5+EF6)

    目录 [第一篇]ASP.NET MVC快速入门之数据库操作(MVC5+EF6) [第二篇]ASP.NET MVC快速入门之数据注解(MVC5+EF6) [第三篇]ASP.NET MVC快速入门之安全策 ...

  2. jquery控件的学习

    <!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/ ...

  3. Tag It 一款 Jquery控件,当你在文本框中输入逗号时,自动帮你分隔开相关内容

    Demo地址:http://webspirited.com/tagit/ 使用方法: 除了JQuery脚本外,下面的脚本也是必须的,这些脚本你都可以去GitHub下载:https://github.c ...

  4. jQuery控件之分页控件-- kkpager v1.3使用简介

    js分页展示控件,传入简单参数就能使用的分页效果控件 在线测试链接: http://pgkk.github.io/kkpager/example/pager_test.html http://pgkk ...

  5. [JS] jquery控件基本要点备份

    (1)CDN Google CDN:<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.8.0/jquery.min. ...

  6. Jquery 控件

    1. Jeditable 2. Select2 3. superfish 4. Jquery file upload https://blueimp.github.io/jQuery-File-Upl ...

  7. fineuploader 上传jquery 控件

    fineuploader 昨天用的一个jquery插件. 可参考这篇文章以前写的 file-uploader  跟 这个跟里面介绍的2个jquery 插件相比.觉得更强大写..版本号都3.9 了….. ...

  8. Jquery控件jrumble

    <!DOCTYPE HTML> <html>  <head>   <title>demo.html</title>   <meta h ...

  9. jquery控件-实现自定义样式的弹出窗口和确认框(转)

    (function () { $.MsgBox = { Alert: function (title, msg) { GenerateHtml("alert", title, ms ...

随机推荐

  1. 查看Visual Studio异常内容

    If Entity Framework throws a validation exception when saving, Visual Studio reports the message, Va ...

  2. MySQL服务 - MySQL列类型、SQL模式、数据字典

    MySQL列类型的作用: 列类型可以简单理解为用来对用户往列种存储数据时做某种范围"限定",它可以定义数据的有效值(字符.数字等).所能占据的最大存储空间.字符长度(定长或变长). ...

  3. .NET并行编程1 - 并行模式

    设计模式——.net并行编程,清华大学出版的中译本. 相关资源地址主页面: http://parallelpatterns.codeplex.com/ 代码下载: http://parallelpat ...

  4. composer.json:项目安装!!!!!!!!!!

    基本用法 基本用法 安装 composer.json:项目安装 关于 require Key 包名称 包版本 下一个重要版本(波浪号运算符) 稳定性 安装依赖包 composer.lock - 锁文件 ...

  5. jQuery MiniUI开发系列之:创建组件对象

    jQuery MiniUI可以使用Javascript和Html两种方式来创建对象. 1)Javascript创建对象 使用JavaScript创建对象,是最基本的方式,有如下几个要点: 1)使用ne ...

  6. [转]SQL Server 连接串关键字别名

    转自:http://stackoverflow.com/questions/3077412/what-is-the-difference-between-trusted-connection-and- ...

  7. 【转】伪静态URLRewrite学习笔记

    UrlRewrite: UrlRewrite就是我们通常说的地址重写,用户得到的全部都是经过处理后的URL地址,类似于Apache的mod_rewrite.将我们的动态网页地址转化为静态的地址,如ht ...

  8. vi 使用入门

    几种模式:     Normal Mode 命令模式     Insert Mode 编辑模式     Command-line Mode      Visual Mode      Select M ...

  9. shell return value

  10. java的基本程序设计之个人总结要点

    java的基本程序设计之个人总结要点 这是个人看完java核心卷一书之后,罗列的一些比较重要的点子,希望共享给大家. [数值类型] 1.从java7开始,加上前缀0b就可以写二进制数,例如:0b100 ...