我对将 jQuery 合并到它自己的文件中感到困惑。我可以用 jQuery 做我需要的事情,但我要么将每个函数放在它自己的 .js.erb 文件中,要么将它内联包含在 .html.erb 文件中,并用脚本标签包裹。如果我尝试将它们全部放在同一个文件中,我无法让它工作。
每当用户单击链接时,我都想要replaceWith()
一个不同的链接,具体到它是哪个链接。div
目前,我的每个链接都指向一个不同的操作,每个链接都有自己独特的 .js.erb 文件 - 所以我有大约 12 个文件,每个文件只有一个 jQuery 链接 - 这很有效,但看起来很混乱。
一个示例链接是这样的:
<%= 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);
}
});
感谢您的评论!