理解$.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中加入元素
})
|