gpt4 book ai didi

javascript - Coffeescript 和 jQuery 类型错误

转载 作者:行者123 更新时间:2023-11-28 10:02:41 27 4
gpt4 key购买 nike

我最近在使用带有coffescript的jquery插件时遇到了一个小问题(在Rails 3.1 Assets 管道中,如果有帮助的话)。我环顾四周,但无法真正弄清楚为什么它会这样。

那么,为什么这不起作用(谈论 $('.overlaybox') 上的 Angular 落调用):

$ ->
$('#slides').sortable
axis: 'y'
update: ->
$.post($(this).data('update-url'), $(this).sortable('serialize'))

$(".overlaybox").corner()

但这确实有效(从 jQuery 就绪的东西中取出 Angular 落调用):

$ ->
$('#slides').sortable
axis: 'y'
update: ->
$.post($(this).data('update-url'), $(this).sortable('serialize'))

$(".overlaybox").corner()

我不断收到

TypeError: 'undefined' is not a function (evaluating '$(".overlaybox").corner()')

如果我把它留在那里……也许​​我现在只是瞎了眼,但我不明白为什么我不能把它留在那里。即使编译后的代码看起来也是合法的(至少对我来说是合法的;-))。

非常感谢您抽出时间进行澄清。

马塞尔

更新这是一些相关代码:

# 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()

然后是 View (app/views/slides/_form.html)。有趣的是,一旦我将它从 jquery 文档就绪事件中取出, Angular 落就起作用了。我认为我遗漏了一些关于所有这些范围的实质性内容:当我在 $ -> Angular 落内执行 console.log 时,我得到一个未定义的信息。但是当我在 $ -> (实际上在下面)之外做同样的事情时,我得到了正确的输出,并且它甚至在 jquery 之前就被触发了(当然)。但为什么它在 jQuery block 中不可用呢?我错过了 Coffeescript 的范围吗? (我现在使用不同的插件也遇到同样的问题)

再次非常感谢!

这里还有编译后的 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();
});

最佳答案

嗯,问题是,我的 Rails 公共(public)文件夹中有一些预编译的资源(旧的东西),这有点扰乱了我的 jQuery 调用。清除了它,吸取了教训,现在一切都按预期进行。

无论如何,非常感谢大家,我非常感谢你们的帮助!

关于javascript - Coffeescript 和 jQuery 类型错误,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/8954211/

27 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com