繁体   English   中英

创建后与jQuery插件对象进行交互

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

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM