1

私はcoffeescript/javascriptの比較的素人ですが、Railsで3つの異なる関数(2つのSelect2関数とBest in Placeをロードする1つの関数)が同時に動作するように構造化する方法を理解するのに苦労しています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()

しかし、このように 3 つの機能をすべて組み合わせると、どれも機能しません。次のように、1つだけ実行すると:

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

プレスト、その機能は問題なく動作します。ここで何が間違っていますか?

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
)

このCoffeeScript:

$('#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()$('.best_in_place').best_in_place()は実行されません。

于 2012-09-23T21:16:46.613 に答える