jquery中有几个函数可以执行以下操作:
$('#element').each().get('title').othercmd()
如何创建一个类(或一系列类)来复制此行为? 基本上,我想要这样的事情:
test = new Something()
test.generateSection('title').addData('somedata')
这是正确的吗?
由于
答案 0 :(得分:3)
只需在每种方法结束时返回您正在操作的内容。 (通常this
。
答案 1 :(得分:3)
一种方法是在每个函数中返回“this”(对象)。所以你可以这样做:
<script>
var Something = function() {
this.hi = function() {
alert('hi');
return this;
};
this.bye = function() {
alert('bye');
return this;
};
}
var myObj = new Something();
myObj.hi().bye();
</script>
答案 2 :(得分:1)
只需在您希望能够链接的所有方法中返回当前实例,就可以实现链模式。
Something.prototype.generateSection = function(title){
... code ...
this.sectionAdded = ...;
return this;
}
Something.prototype.addData = function(data)
{
... continue manipulating this.sectionAdded however you need it ..
return this;
}
对你的“班级”的其他方法做同样的事情。要记住的一点是,你必须存储将来调用所需的对象,在你生成一个部分的情况下,所以你必须将它放在你的实例中(在某些私有变量中,如sectionAdded)所以你将能够继续从其他方法操纵它。
答案 3 :(得分:0)
我不知道是否有一种方法可以轻松地将命令与普通的javascript链接在一起,但是如果你想用jQuery尝试这个,你必须将你的代码编写为jQuery插件。 它实际上非常简单,并且有大量的教程可以编写自己的插件。
我遇到的最简单的一个是本教程: