1

我是 coffeescript/javascript 的相对业余爱好者,但我无法弄清楚如何构建它,以便三个不同的函数(两个Select2函数和一个加载Best in Place的函数)在 Rails 中同时工作3 应用。我在资产管道文件中有以下代码,当应用程序运行时,它肯定会被加载并转换为 javascript:

jQuery ->
    $('#foo').select2()
        placeholder: "Choose an option.",
        allowClear: true
    $('#bar').select2()
        placeholder: "Choose an option.",
        allowClear: true
    $('.best_in_place').best_in_place()

但是当我像这样将所有三个功能放在一起时,它们都不起作用。当我只运行一个时,例如:

jQuery ->
    $('#foo').select2()
        placeholder: "Choose a diagnosis.",
        allowClear: true

Presto,该功能工作得很好。我在这里做错了什么?

4

1 回答 1

1

我怀疑您的代码根本无法正常工作,当您尝试运行该代码时,您可能希望查看 JavaScript 控制台。

这:

$('#foo').select2()
    placeholder: "Choose an option.",
    allowClear: true

与此 JavaScript 相同:

$('#foo').select2()({
    placeholder: "Choose an option.",
    allowClear: true
});

但你几乎肯定想要这个 JavaScript:

$('#foo').select2({
    placeholder: "Choose an option.",
    allowClear: true
});

为此,您的 CoffeeScript 将如下所示:

$('#foo').select2
    placeholder: "Choose an option."
    allowClear: true

或像这样:

$('#foo').select2(
    placeholder: "Choose an option."
    allowClear: true
)

这个咖啡脚本:

$('#foo').select2()
    placeholder: "Choose an option.",
    allowClear: true
$('#bar').select2()
    placeholder: "Choose an option.",
    allowClear: true
$('.best_in_place').best_in_place()

应该成功执行$('#foo').select2()然后触发 TypeError 因为select2()没有返回函数但你试图像调用它一样调用它。然后,$('#bar').select2()and$('.best_in_place').best_in_place()甚至不会运行。

于 2012-09-23T21:16:46.613 回答