[英]Interacting with jQuery plugin objects after their creation
我有一個行情自動收錄機,哪些項目使用輪詢進行更新。 我已經為股票行情編寫了一個簡單的jQuery插件,如下所示:
$("#cont ul").ticker();
將ul變成股票行情自動收錄器,滾動通過li。 要添加新項目,我必須在ul中添加lis,效果很好。 但是,我內部的OO希望我可以在代碼對象中具有addItem函數。 但是,我不想失去jQuery使用的可鏈接性。
是否有某種方法比將ul添加到列表中更明顯,但是與jQuery的工作方式相匹配?
您應該做的是擴展插件的設置:
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.
jQuery並不是真正的OO解決方案,因此您可以肯定地說這不是“ jQuery方式”。 我聽說Prototype就是關於OO的,所以您可能需要研究一下這一天。
但是沒有理由您不能向jQuery對象添加另一個函數:
$.fn.addTickerItem = function(contents) {
this.append(
$("<li></li>").html(contents);
);
return this;
};
..但是您會慢慢污染名稱空間。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.