你好,
我正在尝试在javascript中开发一些插件或 / 和对象,这将控制某些对象的某些属性。它还将使用jQuery来简化开发。
这是伪代码给你一个想法,因为我不能用英语用正确的词语真正描述它,所以不可能去google找出我想要使用的东西(并学习)。
I will have plugin (maybe object?) with some variables and methods:
plugin hideshow(startupconfig){
var c, //collection
add: function(what){
c += what;
},
do: function(){
c.show().hide().stop(); //example code
}
}
我将以这种方式使用它(或 sort-of ):
var p = new Plugin();
p
.add($('p#simple'))
.add($('p#simple2'))
.do();
我不是真的在寻找jQuery插件教程 - 它更像是在javascript中使用文档中的一个对象,jQuery只是因为它将用于修改dom和简化选择器,jQuery插件可能只是为了那个小函数add
。
我正在寻找一些东西,它将位于我的文档之上,并根据计时器或用户操作或其他任何方式从itselft调用函数。
$('#simple, #simple2');
)$.fn.addToPlugin
来使用jQuery来使用对象的链接,但这应该很简单(实际上只是each( p.add($(this)); )
)我希望我有任何意义,想法,链接或建议。
就是这样的,我只是无法弄清楚它是如何在javascript中调用/使用的 - 伪PHP中的例子:
class Foo() {
$collection;
$timer, $action;
function onTimer(){
foreach($collection as $e){
$e->someAction();
}
}
function add($e){
$collection[] = $e;
}
function start(){
$timer->start( onTimer() );
}
function->stop(){
$timer->stop();
}
}
var f = new Foo();
Foo.add(something);
Foo.start();
答案 0 :(得分:3)
看看Plugins/Authoring。我会说你提出的API并不是真正的“jQuery方式”。更可能是:
$("#simple, #simple2").hideandshow();
起点是:
jQuery.fn.hideandshow = function() {
return this.each(function(){
$(this).show().hide().stop();
});
};
你已经基本完成了。
现在调用这一系列事件也没有意义,但这是另一个问题。
现在链接方法变得更有趣了,我想这就是“单例”的用武之地。现在在jQuery的情况下 - 至少对于jQuery插件 - 状态存储在jQuery对象本身上一般规则:
jQuery.effects = [];
jQuery.addeffect = function() {
for (int i=0; i<arguments.length; i++) {
if (typeof this[arguments[i]] == "function") {
this.effects.push(arguments[i]);
}
}
};
并通过插件访问:
jQuery.fn.do = function() {
var effects = this.effects;
return this.each(function(){
var ob = $(this);
for (int i=0; i<effects.length; i++) {
ob = ob[effects[i]]();
}
});
};
然后允许:
$.addeffect("hide", "show", "stop");
$("#simple, #simple2").do();
现在这具有能够将参数传递给这些效果的限制。不太清楚如何解决这个问题。
答案 1 :(得分:2)
如果您想在Javascript中编写单例,YAHOO module pattern应该会显示您需要的所有内容。