我想向jQuery對象添加一個屬性,並將其附加到DOM,而不會污染DOM。在casu中,我想添加的屬性叫做'hue'。 (但是讓我們不要把這個屬性看作顏色)向jQuery對象添加(讀寫)屬性
Ofcourse,有可能使用jQuery的'數據'功能,而且這個功能很好用。但是,它使我的代碼不易讀。
$("#a").data("hue","123");
$("#b").data($("#a").data("hue") );
我也設法創建了一個getter和setter函數,它已經明顯更具可讀性了。
$("#a").setHue(123);
$("#b").setHue( $("#a").getHue() );
歸根結底,我想達成的目標是能夠給我寫的jQuery/javascript代碼這樣:
$("#a").hue(123);
$("#b").hue( $("#a").hue() );
但是,它不工作,並在Firebug評估時,我瀏覽器崩潰。
這是我迄今爲止創建的代碼。 getHue()和setHue('123')起作用,Hue()不起作用。
//extend the jQuery object with some extra properties for sake of readability
(function($)
{
$.fn.setHue = function(hue_value)
{
this.hue=hue_value;
return this;
};
$.fn.getHue = function()
{
return this.hue;
};
$.fn.hue = function(hue_value)
{
if (typeof hue_value === 'undefined'){
return this.getHue();
} else {
this.setHue();
return this;
}
};
})(jQuery);
我試圖研究谷歌搜索,閱讀紙圖書和閱讀的插件創建jQuery的API。但是,這些都着眼於創建更多功能性插件,操縱DOM元素。可能是因爲我沒有使用正確的關鍵字進行google搜索。
din't測試你的代碼,但你不應該通過'hue_value'當你調用'this.setHue()'在'$ .fn.hue'功能?這樣的:'this.setHue(hue_value);' –