javascript插件-面向对象? 简介
你好, 我正在尝试用javascript开发一些插件或/和对象,它将控制某些对象的一些属性。它还将使用jQuery来简化开发 主意 这是一个伪代码,给你一个想法,因为我不能用正确的词用英语来描述它,所以不可能用谷歌来找到我想要使用(和学习)的东西 我将这样使用它(或类似): 笔记 我并不是真的在寻找jQuery插件教程-它更像是在javascript文档中使用一个对象,之所以提到jQuery只是因为它将用于修改dom和简化选择器,jQuery插件可能只是为了那一个小功能javascript插件-面向对象? 简介,javascript,jquery,singleton,module-pattern,Javascript,Jquery,Singleton,Module Pattern,你好, 我正在尝试用javascript开发一些插件或/和对象,它将控制某些对象的一些属性。它还将使用jQuery来简化开发 主意 这是一个伪代码,给你一个想法,因为我不能用正确的词用英语来描述它,所以不可能用谷歌来找到我想要使用(和学习)的东西 我将这样使用它(或类似): 笔记 我并不是真的在寻找jQuery插件教程-它更像是在javascript文档中使用一个对象,之所以提到jQuery只是因为它将用于修改dom和简化选择器,jQuery插件可能只是为了那一个小功能添加 我正在寻找一些东西,
添加
我正在寻找一些东西,它将位于我的文档顶部,并根据计时器、用户操作或其他方式从其自身调用函数
问题
$('#simple,#simple2');
)$.fn.addToPlugin
扩展jQuery以使用对象链接,但这应该很简单(实际上只是每个(p.add($(this));)
)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();
看一看。我要说的是,您提出的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]);
}
}
};
现在,它有一个限制,即不能将参数传递给这些效果。不太清楚如何避开这个问题。看一看。我要说的是,您提出的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]);
}
}
};
现在,它有一个限制,即不能将参数传递给这些效果。不太清楚如何解决这个问题。如果你想用Javascript编写一个单例,应该会显示你需要的一切。如果你想用Javascript编写一个单例,应该会显示你需要的一切。请看注释-我可能没什么意义-现在已经很晚了,毕竟:]我可能会因为提到jQuery而把你搞糊涂了,我会用一些php代码来编辑它,让你有个想法。哇,你真的很有帮助,但是用定时器(
setInterval
)来使用它有意义吗?就像我的例子中的php代码一样?我很抱歉Cletus,但是eddy.kavanagh不知怎的读懂了我的心思:?:]请看注释-我可能没什么意义-毕竟已经晚了:]我可能会因为提到jQuery而把你搞糊涂了,我会用一些php代码来编辑它,让你知道。哇,你真的很有帮助,但是用定时器(setInterval
)来使用它有意义吗?就像我的示例php代码一样?我向克莱特斯道歉,但艾迪·卡瓦纳不知怎么地读懂了我的心思:?:]看看链接,它与YUI无关,如果你不想,你不必使用YUI为你的代码命名。看看链接,它与YUI无关,如果你不想,你不必使用YUI为你的代码命名。
$.addeffect("hide", "show", "stop");
$("#simple, #simple2").do();