最新国产好看的视频,伊人天堂AV在线,国产Aaaaaa视频,蜜臀视频在线观看一区,人妻av色图,密臀久久久精品影片,青青视频免费观看毛片,久草在线观看视,国产三级精品色情在线

擴展jQuery對象時如何擴展成員變量具體怎么實現(xiàn)

 更新時間:2014年04月25日 15:29:59   作者:  
這篇文章主要介紹了擴展jQuery對象時如何擴展成員變量,需要的朋友可以參考下
先看一段代碼:
復制代碼 代碼如下:

jQuery.fn.extend(
{
myOwnMember: 3,
getMyOwnMember: function () { return this.myOwnMember; },
setMyOwnMember: function (v) { this.myOwnMember = v; return this.myOwnMember; }
}
);

$("body").myOwnMember; //3
$("body").getMyOwnMember(); //3
$("body").setMyOwnMember(4); //4
$("body").getMyOwnMember(); //3

這段代碼給jQuery對象擴展了一個成員myOwnMember,兩個函數(shù)getMyOwnMember,setMyOwnMember分別用于返回和設置myOwnMember的值。但是我們看到setMyOwnMember并沒有起作用,我們再次getMyOwnMember時,返回的還是初始的值。這是為什么呢?原因在于$("body")每次都會創(chuàng)建一個新對象,所以每次$("body")里面的myOwnMember都是初始值。如果我們將代碼改成:
復制代碼 代碼如下:

jQuery.fn.extend(
{
myOwnMember: 3,
getMyOwnMember: function () { return this.myOwnMember; },
setMyOwnMember: function (v) { this.myOwnMember = v; return this.myOwnMember; }
}
);

var body = $("body");
body.myOwnMember; //3
body.getMyOwnMember(); //3
body.setMyOwnMember(4); //4
body.getMyOwnMember(); //4

這就是我們想要的效果了,這是因為$("body")只創(chuàng)建了一次,后面都是通過body變量進行的引用。但是這種方法在實際使用過程中還是存在問題,因為我不可能在全局范圍內(nèi)都能夠引用到body變量,很多時候還是通過$("body")來獲取dom節(jié)點,這樣的話我們又怎么保存一個jQuery對象擴展變量的值呢?解決方法是我們不要把變量保存在jQuery對象上,而是保存在dom節(jié)點上,無論在一個dom節(jié)點上創(chuàng)建多少個jQuery對象,都是指向同一個dom節(jié)點的。所以我們將代碼改成如下:
復制代碼 代碼如下:

jQuery.fn.extend(
{
getMyOwnMember: function () { return this[0].myOwnMember; },
setMyOwnMember: function (v) { this[0].myOwnMember = v; return this[0].myOwnMember; }
}
);

$("body").getMyOwnMember(); //undefined
$("body").setMyOwnMember(4); //4
$("body").getMyOwnMember(); //4

相關文章

最新評論

乌兰县| 攀枝花市| 中西区| 汉阴县| 大姚县| 凤台县| 文安县| 兰坪| 桐乡市| 昭通市| 宿迁市| 沂水县| 苏尼特右旗| 莒南县| 同江市| 青阳县| 漠河县| 曲阳县| 淮阳县| 阳东县| 日喀则市| 赤峰市| 抚松县| 临江市| 平陆县| 肥西县| 乐平市| 奉贤区| 宜兴市| 门源| 高尔夫| 金乡县| 新源县| 同德县| 新蔡县| 城步| 墨竹工卡县| 永昌县| 巴林右旗| 仁寿县| 庆云县|