0
我增加了以下功能,所以我可以在一些收藏向後遍歷:如何在單個步驟中向jQuery添加可鏈接的函數?
jQuery.reverseEach = function (object, callback, args) {
var reversed = $(object).get().reverse();
return $(reversed).each(callback, args);
};
,如果你這樣稱呼它偉大的工程:
$.reverseEach($('#selectedSortItems option:selected'), function() {
$(this).insertAfter($(this).next());
});
不過,我想成爲所有光滑和使它可以鏈接,因爲我喜歡我的語法糖。我添加到原來的reverseEach函數的引用在jQuery的原型:
jQuery.prototype.reverseEach = function(callback, args) {
return jQuery.reverseEach(this, callback, args);
};
現在我可以這樣調用:
$('#selectedSortItems option:selected').reverseEach(function() {
$(this).insertAfter($(this).next());
});
不過,我認爲1.3中的功能做的同一件事情在一個步驟中,而不需要參考原型。我試圖用1.3中的功能,如:
jQuery.fn.extend({
reverseEach: function(object, callback, args) {
var reversed = $(object).get().reverse();
return $(reversed).each(callback, args);
}
});
但whenver我運行鏈接方法這種方式,我得到以下錯誤: 無法獲得屬性「叫」的價值:對象爲空或未定義。
我在做什麼錯誤的jQuery.fn.extend方法?我是否採取了完全錯誤的做法,還是我錯過了簡單的事情?
謝謝!
[請務必閱讀本(http://docs.jquery.com/Plugins/Authoring) – gdoron
正是我聯繫尋找。仍然是jQuery的新功能。 –