我想通過爲jQuery創建一個小插件來學習CoffeeScript,該插件將移動div標記以將其保留在屏幕上。出於某種原因,我無法使'return this.each'正常運行。我已經嘗試了jQuery插件創作頁面的基本結構,但仍然無法工作。有什麼特別的,我必須做的才能使這個工作?jquery - this.each不執行
我在Ruby 1.9.3和Rails 3.2.2上使用了咖啡欄(3.2.1)和jquery-rails(2.0.1)gems運行這個腳本。
CoffeeScript的
$ = jQuery
defaults =
paddingTop: 10
$.fn.fixedTop = (options) ->
settings = $.extend defaults, options
this.each() ->
beginPoint = this.offset().top - settings.paddingTop
$(window).scroll() ->
scrollTop = $(window).scrollTop()
if beginPoint < scrollTop
$(this).css 'marginTop', (scrollTop-beginPoint)+settings.paddingTop
生成JS
(function() {
var $, defaults;
$ = jQuery;
defaults = {
paddingTop: 10
};
$.fn.fixedTop = function(options) {
var settings;
settings = $.extend(defaults, options);
return this.each(function() {
var beginPoint;
beginPoint = this.offset().top - settings.paddingTop;
return $(window).scroll(function() {
var scrollTop;
scrollTop = $(window).scrollTop();
if (beginPoint < scrollTop) {
return $(this).css('marginTop', (scrollTop - beginPoint) + settings.paddingTop);
}
});
});
};
}).call(this);
內部回報似乎是多餘的。擦除它們,再試一次並告訴我會發生什麼。 – 2012-03-18 07:15:46
@elclanrs +1爲那個傢伙。 – Nemoy 2012-03-18 07:16:32
他們是由coffeescript自動生成的,我試圖刪除返回和代碼沒有運行。我在回報的這一邊放置了斷點,第一個被觸發,但第二個不是。 – Nick 2012-03-18 07:21:50