2 回答

TA貢獻(xiàn)1826條經(jīng)驗 獲得超6個贊
jquery插件一般有三種開發(fā)方式:
通過$.extend()來擴(kuò)展jQuery
通過$.fn 向jQuery添加新的方法
通過$.widget()應(yīng)用jQuery UI的部件工廠方式創(chuàng)建
以下重點(diǎn)講解第二種:
1、例如定義一個對象的寫法:
var Haorooms= function(el, opt) {
this.$element = el,
this.defaults = {
'color': 'red',
'fontSize': '12px',
'textDecoration':'none'
},
this.options = $.extend({}, this.defaults, opt)
}
//定義haorooms的方法
haorooms.prototype = {
changecss: function() {
return this.$element.css({
'color': this.options.color,
'fontSize': this.options.fontSize,
'textDecoration': this.options.textDecoration
});
}
}
$.extend({}, this.defaults, opt)有{}主要是為了創(chuàng)建一個新對象,保留對象的默認(rèn)值。

TA貢獻(xiàn)1871條經(jīng)驗 獲得超13個贊
其實(shí),所謂的方法,屬性,事件,都是你自己總結(jié)出來的。對于純正的JS和JQuary來說,這3個都是一種東西。我們常常用了簡便寫法,因此樓主才覺得這3者不同,其實(shí)這些統(tǒng)統(tǒng)都是變量。
只不過,如果變量是個參數(shù),就是:
var temp = "怪蛋";
如果參數(shù)是個數(shù)組,那么就是:
var temp = {title:'newTab'};
而我們常見的函數(shù),都會寫成getVal(a,b,c){}其實(shí)寫的更符合JS原生態(tài)的,是
var getVal = function(a,b,c){} 從這里看出,我們所謂的函數(shù),其實(shí)和變量是一種東西。
因此所謂的$('#id').Tabs({onSelect:functuon(){}});這類情況,等于傳入的是一個叫onSelect的變量,而這個變量剛好是一個函數(shù)類型而已。事實(shí)上這個onSelect原本并不存在,是你后來的插件里去調(diào)用了而已。你通過英文意思覺得這是“被選中”的意思,其實(shí)在這里,僅僅是一個名字而已。只有插件內(nèi)部寫到$(this).on("click",function(){});才真正調(diào)取到JS原本的event的click事件。而我們插件中常見的onSelect、onClick、onSuccess都是寫插件的人按照自己的喜好和大家喜歡的名字而命名的。
- 2 回答
- 0 關(guān)注
- 649 瀏覽
添加回答
舉報