两种写法对比:

第一种:

;(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. 【Telnet】使用Telnet协议连接到远程Shell执行脚本

    介绍 本文介绍如何通过Telnet协议连接到远程Shell,执行脚本,并获取执行结果: 相关文章: <[Jsch]使用SSH协议连接到远程Shell执行脚本>http://www.cnbl ...

  2. 使用nvm安装node

    安装nvm curl -o- https://raw.githubusercontent.com/creationix/nvm/v0.32.1/install.sh | bash 安装node nvm ...

  3. 服务端性能测试校准v1.2

    服务端性能测试工具校验v1.2 想知道压力工具实际并发多少,想知道压力工具统计响应数据准不准,来试试这款校准工具. 更新说明: 1.修正总接收请求显示上限. 2.随着响应时间增加,自动增加处理线程. ...

  4. [经验交流] docker in docker 的变通实现方法

    最近在做CI持续集成环境的容器化,其中一个工作是:在容器中构建容器镜像. 对于这个需求,网上有一些 Docker in Docker 的方法,具体需要修改宿主机的配置.这种方式在单机环境下.对安全要求 ...

  5. 【学】jQuery的源码思路4——增加一些功能

    本文说一些简单的jQuery实现原理 eq() get() hide() show() index() find() //返回找到的一组元素中的第n个 zQuery.prototype.eq=func ...

  6. Netty服务端与客户端(源码一)

    首先,整理NIO进行服务端开发的步骤: (1)创建ServerSocketChannel,配置它为非阻塞模式. (2)绑定监听,配置TCP参数,backlog的大小. (3)创建一个独立的I/O线程, ...

  7. selenium之操作ChromeDriver

    链接:http://www.testwo.com/blog/6931 1.下载ChromeDriver驱动包(下载地址: http://chromedriver.storage.googleapis. ...

  8. javascript 中正则表达式应用

    <script type="text/javascript"> var str="<script type='text/javascript'> ...

  9. ESXi Install OpenWRT

    根据官方的提示,下载的img镜像需要转换为vmdk. 地址:http://wiki.openwrt.org/doc/howto/vmware 转换需要qemu-utils,网上的安装方法: #64位系 ...

  10. OS X升级El Capitan后,git difftool无法打开diffmerge的解决方法

    在git项目下执行git difftool,出现如下报错 /Library/Developer/CommandLineTools/usr/libexec/git-core/mergetools/dif ...