我有一個代碼,哪些項目使用輪詢更新。我寫了一個簡單的jQuery插件被調用,像這樣的代碼:果然一UL成股票,通過李滾動創建後與jQuery插件對象進行交互
$("#cont ul").ticker();
。要添加新項目,我必須將lis添加到ul,這很好。然而,在我的OO希望我可以在股票對象上有一個addItem函數。但是,我不想失去jQuery使用的鏈接性。
是否有一些方法比向列表中添加ul更明顯,但這與jQuery的做事方式相符?
我有一個代碼,哪些項目使用輪詢更新。我寫了一個簡單的jQuery插件被調用,像這樣的代碼:果然一UL成股票,通過李滾動創建後與jQuery插件對象進行交互
$("#cont ul").ticker();
。要添加新項目,我必須將lis添加到ul,這很好。然而,在我的OO希望我可以在股票對象上有一個addItem函數。但是,我不想失去jQuery使用的鏈接性。
是否有一些方法比向列表中添加ul更明顯,但這與jQuery的做事方式相符?
jQuery並不是一個真正的面向對象的解決方案,所以你說的並不是真正的「jQuery方式」。我聽說Prototype是關於OO的,所以你可能想在某一天看看。
沒有理由你不能另一個函數添加到jQuery對象,但:
$.fn.addTickerItem = function(contents) {
this.append(
$("<li></li>").html(contents);
);
return this;
};
..但你會慢慢地污染命名空間。
你應該做的是爲你的插件擴展設置:
jQuery.ticker = function(settings)
{
var settings =
jQuery.extend(
{
action : 'create',
item : $(this)
}
,settings);
return $(this).each(function(){
if(settings.action =='create')
{
//initialize ticker..
}
else if(settings.action == 'add')
{
//add to ticker.
}
}//end each.
}//end plugin.
$('#ticker').ticker(); //this will initialize it, no problem.
var settings1 = { action : 'add', item : $(expr1) }
$('#ticker').ticker(settings1);//this will execute the "add" action.