jQueryを独自のファイルに統合することに混乱しています。jQuery で必要なことを実行できますが、各関数を独自の .js.erb ファイルに入れるか、スクリプト タグでラップして .html.erb ファイルにインラインで含めます。それらをすべて同じファイルに入れようとすると、機能しません。
ユーザーがリンクをクリックするたびに、それがどのリンクであるかに固有の別の方法が必要ですreplaceWith()
。div
現在、私は各リンクが異なるアクションを指しており、それぞれが独自の.js.erbファイルを持っているため、約12個のファイルがあり、それぞれにjQueryのリンクが1つしかありません.これは機能しますが、とても面倒です.
リンクの例は次のようになります。
<%= link_to({:action => 'economics'}, remote: true) do %><div id="department" class="economics">Economics</div><% end %>
関連付けられた jQuery (ここでも、economics.js.erb ファイル内の唯一の行です):
$('#target_div').replaceWith('<%= j render "economics" %>')
これを行うには、よりクリーンな方法が必要だと感じています。
以下のコメントのおかげでうまくいきました!これが一般的なコードです
HTML - データリモートが鍵でした!
<div id="render_form" data-target="target_div" data-remote="true"> economics </div>
<div id="render_form" data-target="target_div" data-remote="true"> other </div>
<hr />
<div id="target_div">Nil</div>
jQuery
$("div#render_form").click(function() {
var targetId = $(this).data("target");
var text = $(this).text();
if (targetId.length > 0) {
$(this).data("target");
$('#' + targetId).text(text);
}
});
コメントありがとうございます!