0

私が持っている頭の中で

<script src="/assets/application.js?body=1" type="text/javascript"></script>

私が持っている体に

<a href="remove_fields(this)">xremove</a>

私が持っているjsで

function remove_fields(link) {
  ...
}

xremoveリンクをクリックすると取得

No route matches [GET] "/recipes/1/remove_fields(this)"

どうしたの ?

編集 - 簡単にするために質問を更新しました

4

3 に答える 3

1

Rails が onclick に対して無効な Javascript 呼び出しを生成しているようです。関数呼び出しには引数のないコンマが含まれています。これは、Rails がそれらの引数に入れようとしているデータが何であれ、null でなければならないことを意味する必要があります。

Rails テンプレートをチェックして、そこに何を詰め込もうとしているのかを確認してください。

更新: 質問を変更したので、ここに新しい回答があります:

href で直接 javascript を参照することはできません。関数呼び出しの前に「javascript:」を追加するか、onclick ハンドラーに追加する必要があります。

于 2012-06-09T20:14:10.300 に答える
1

上記の完全に有効な回答に代わるものとして、最初に Google CDN Hosted の縮小ライブラリを含めることで、jQuery API の極端な単純化を利用できます。

<script type="text/javascript" 
   src="https://ajax.googleapis.com/ajax/libs/jquery/1.7.2/jquery.min.js"></script>

次に、上記と同じように (ただし jQuery スタイル)、はるかに単純な IMO:

<a href="#" id="link">

<script type="text/javascript">
$("#link").click(function (event)
{    
    // Handle event here. This code will be executed whenever event is triggered
    // ie. whenever you click the element with id link
});

私は経験の浅い Web プログラマーであり、アセンブリ、C++、Java などのネイティブ分野ほど、javascript などの関数型/解釈型言語のベスト プラクティスについての知識がほとんどありません。しかし、書きやすさ/読みやすさと、上記の回答とここにある jQuery のバージョンを比較すると、Microsoft や Google などの巨大なテクノロジー企業の間でさえ、jQuery が非常に人気がある理由がよくわかります。できる限りこれに固執します。

これは、 .click() メソッドに関する優れた jQuery ドキュメントへのリンクです。

于 2012-06-09T20:14:37.647 に答える
1

インライン JavaScript を使用しないでください。それはすべて、既知のベストプラクティスに反しています。

代わりにイベント ハンドラーを使用します。

<a href="#" id="link">

<script>
document.getElementById('link').onclick = function() {
    // do whatever you want
}
</script>
于 2012-06-09T19:58:51.477 に答える