您的位置:首页 > Web前端 > JQuery

jquery插件开发

2016-01-05 10:45 543 查看
深入理解JavaScript系列
http://www.cnblogs.com/TomXu/archive/2011/12/15/2288411.html
// 扩展jQuery对象,添加showTagInfo()方法
// 用于将jQuery对象所有匹配元素的标识信息追加到body元素内
// 每个元素的标识信息形如:"tagName"或"tagName#id"
jQuery.fn.showTagInfo = function(){
    var tags = this.map( function(){
    return this.tagName + ( this.id ? "#" + this.id : "" );
  } ).get();
  $("body").append( tags.join("<br>") + "<br><br>" );
};


css常见跨浏览器问题

就是一些CSS的问题啊 双边距 浮动错位这些
http://www.jb51.net/article/55193.htm
jquery自定义插件的写法
http://www.cnblogs.com/Jimmy009/archive/2013/01/17/jquery%E6%8F%92%E4%BB%B6.html http://www.cnblogs.com/Wayou/p/jquery_plugin_tutorial.html
jq插件定义 两种方式

第一种,静态方法

$.名字 = function(){}

$.extends{

名字 : function (){}

}

第二种,使用到jq对象定义方式,这种方法可以使用到jQuery强大的选择器

一个一个定义
$.fn.名字=function (){};
批量定义
$.fn.extend({
名字 : function (){}
})

(function($){
$.extend({
sayHello:function(name){
console.log("Hello,"+(name?name:"Dude")+"|")
},
log:function (message) {
var now = new Date();
y = now.getFullYear(),
m = now.getMonth()+1,
d = now.getDate(),
h = now.getHours(),
min = now.getMinutes(),
s = now.getSeconds(),
time = y+"/"+m+"/"+d+" "+h+":"+min+":"+s;
console.log(time+' My app: '+message);
}
})

$.fn.myPlugin = function(options){
var defaults = {
'color':'red',
'fontSize':'18px'
};
var settings = $.extend(defaults,options);
debugger;
return this.css({'color':settings.color,'fontSize':settings.fontSize});
//this指代的是我们在调用该插件时,用jQuery选择器选中的元素,一般是一个jQuery类型的集合
this.css('color','red')
//要让插件不打破这种链式调用,只需return一下即可。
return this.each(function(){
//对每个元素进行操作
$(this).append(' '+$(this).attr('href'));
})
}

})(jQuery)


上面的debugger可以在chrome里直接断点到那里,使用起来很方便

在处理插件参数的接收上,通常使用jQuery的extend方法,上面也提到过,但那是给extend方法传递单个对象的情况下,这个对象会合并到jQuery身上,所以我们就可以在jQuery身上调用新合并对象里包含的方法了,像上面的例子。当给extend方法传递一个以上的参数时,它会将所有参数对象合并到第一个里。同时,如果对象中有同名属性时,合并的时候后面的会覆盖前面的。
内容来自用户分享和网络整理,不保证内容的准确性,如有侵权内容,可联系管理员处理 点击这里给我发消息
标签: