有jQuery的幾個功能,你可以做到以下幾點: $('#element').each().get('title').othercmd()
使用jQuery(或者甚至只是JavaScript)的,如何鏈命令一起
我怎樣才能創建一個類(或一系列的類)來複制這種行爲? 基本上,我想是這樣的:
test = new Something()
test.generateSection('title').addData('somedata')
什麼這是正確的?
謝謝
有jQuery的幾個功能,你可以做到以下幾點: $('#element').each().get('title').othercmd()
使用jQuery(或者甚至只是JavaScript)的,如何鏈命令一起
我怎樣才能創建一個類(或一系列的類)來複制這種行爲? 基本上,我想是這樣的:
test = new Something()
test.generateSection('title').addData('somedata')
什麼這是正確的?
謝謝
一種方法是在每個函數中返回「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>
只是返回你在每個方法的末尾操作的東西。 (通常爲this
)。
你可以實現一個鏈模式,只需通過返回當前實例的所有方法,你想能鏈。
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之類的一些私有變量中),以便您能夠繼續從其他方法操縱它。
我不知道是否有一種方法可以輕鬆地將命令與純JavaScript結合在一起,但是如果您想用jQuery嘗試這一點,則必須將您的代碼編寫爲jQuery插件。 這其實很簡單,並且有大量的教程來編寫自己的插件。
一個我遇到的最簡單的就是這個教程: