[英]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.