理解$.extend(),与$.fn.extend()方法区别 app
1.$.extend()方法 this
$.extend()方法在JQuery中有两个用法,第一次是扩展方法, spa
第二个方法是 code
jQuery.extend([deep], target, object1, [objectN]) 对象
返回值:Object 递归
把2个对象合并获得新的target,deep是可选的(递归合并) ci
合并 settings 和 options,修改并返回 settings。 get
var settings = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; jQuery.extend(settings, options);
settings == { validate: true, limit: 5, name: "bar" }
合并 defaults 和 options, 不修改 defaults。 input
var empty = {}; var defaults = { validate: false, limit: 5, name: "foo" }; var options = { validate: true, name: "bar" }; var settings = jQuery.extend(empty, defaults, options);
settings == { validate: true, limit: 5, name: "bar" } empty == { validate: true, limit: 5, name: "bar" }
2中扩展: it
第一种,看代码
$(function(){
jQuery.extend({
modalshow:function (options) {
var defaults = {
triggerID:'LoginShow',
callback:function () { }
}<br> //这里是$.extend的第二种用法<br> var opts = $.extend({},defaults, options);
if ($("#" + opts.triggerID)[0] ==null) {
var $triggerBTN = $('<input type="button" value="LoginShow" id=' + opts.triggerID +'/>');
$triggerBTN.bind("click",function () {
alert(opts.triggerID);
});
$("body").append($triggerBTN);
}else {
$("#" + opts.triggerID).bind("click",function () {
alert(opts.triggerID);
})
}
}
});
$.modalshow();//这里是调用的地方,id为'loginshow'的button能够先再也不HTML中添加能够自动生成
})
|
第二种扩展
$(function(){
jQuery.fn.extend({
modalshow:function (options) {
var defaults = {
//这里的this是JQuery对象
triggerID:this.attr("id"),
callback:function () { }
}<br> //这里是$.extend的第二种用法<br> var opts = $.extend(defaults, options);
$("#" + opts.triggerID).bind("click",function () {
alert(opts.triggerID);
})
}
});
$("#loginShow").modalshow();//这里是调用的地方,这里须要先在HTML中加入元素
})
|