我最近有一個小問題使用jofery插件與coffeescript(在Rails 3.1資產管道,如果有幫助)。我環顧了一下,但無法弄清楚,爲什麼這樣表現。Coffeescript和jQuery TypeError
那麼,爲什麼這是不行的(在談論在$(角呼叫)「overlaybox。」):
$ ->
$('#slides').sortable
axis: 'y'
update: ->
$.post($(this).data('update-url'), $(this).sortable('serialize'))
$(".overlaybox").corner()
但這樣做的工作(使用了角落叫出了jQuery準備的東西) :
$ ->
$('#slides').sortable
axis: 'y'
update: ->
$.post($(this).data('update-url'), $(this).sortable('serialize'))
$(".overlaybox").corner()
我不斷收到一個
TypeError: 'undefined' is not a function (evaluating '$(".overlaybox").corner()')
,如果我離開它在那裏..也許我只是盲目的權利,但我無法弄清楚爲什麼我不能把它留在那裏。即使編譯的代碼看起來是合法的(至少對我來說它確實;-))。
非常感謝您的時間和澄清。
馬塞爾
UPDATE 下面是一些相對碼:
# app/assets/javascripts/application.js
//= require jquery
//= require jquery-ui
//= require jquery_ujs
//= require jquery.Jcrop
//= require jquery.corner
//= require jqtextile
//= require_tree .
# app/assets/javascripts/slides.js
$ ->
$(".overlaybox").draggable
containment: 'parent',
drag: ->
offset = $(this).position()
xPos = offset.left
yPos = offset.top
$('#slide_xpos').val(xPos)
$('#slide_ypos').val(yPos)
$('#slides').sortable
axis: 'y'
update: ->
$.post($(this).data('update-url'), $(this).sortable('serialize'))
$(".overlaybox").corner()
然後是視圖(app /視圖/幻燈片/ _form.html)。有趣的是,只要我將它從jquery文檔準備好的事件中解放出來,那些角落就可以工作。 我認爲我錯過了所有這些內容的實質內容: 當我在$ - >角落裏做一個console.log時,我得到一個未定義的。但是當我在$ - >(實際上在下面)之外做同樣的事情時,我得到了正確的輸出,並且它在jquery之前被觸發(當然)。但爲什麼它不在jQuery塊中?這是一個範圍與我缺少咖啡文字? (我現在與不同的插件有同樣的問題)
非常感謝!
這裏也是編譯JavaScript代碼,如果這能幫助
$(function() {
console.log($('.overlaybox'));
console.log($('.overlaybox').corner);
$(".overlaybox").draggable({
containment: 'parent',
drag: function() {
var offset, xPos, yPos;
offset = $(this).position();
xPos = offset.left;
yPos = offset.top;
$('#slide_xpos').val(xPos);
return $('#slide_ypos').val(yPos);
}
});
$('#slides').sortable({
axis: 'y',
update: function() {
return $.post($(this).data('update-url'), $(this).sortable('serialize'));
}
});
return $(".overlaybox").corner();
});
'sortable'與這個有什麼關係?任何看到最小案例的機會都會重現問題?該錯誤表明角色插件在您嘗試使用它時未加載,我期望第一個人比第二個人有更好的工作機會。 –
嘿, 我在那裏留下了可排序代碼,至少在$ - > 中有一些代碼,我認爲這可能會更清晰,因爲我還提到了我所說的內容。 但是,根據我的分析器,角落插件是肯定加載之前,在那裏的咖啡代碼。對我來說,第一個例子也更有意義,但它不起作用。 完全不可思議.. –
你能看看'$ .fn.corner'並看看裏面有什麼嗎?可能有兩件事想要使用「角落」名稱? –