【发布时间】:2013-09-11 17:18:33
【问题描述】:
这与以下问题有关,但我想使用咖啡脚本而不是 javascript 来与 Rails 4 中的默认设置进行比较。
起点是前面问题的答案中提供的代码:Making a table row into a link in Rails
视图ERB代码包含一个表生成器,代码如下:
<% @songs.each do |song| %>
<tr data-link="<%= edit_song_path(song) %>">
<td><%= song.Name %></td>
<td><%= song.Group %></td>
</tr>
<% end %>
<tr data-link="<%= edit_song_path(song) %>"> 行基于上述链接问题中给出的答案。
我在songs.js.coffee 文件中有以下内容:
$("tr[data-link]").click ->
window.location = this.dataset.link
这是我在 Mark Berry 的回答中对 javascript 的翻译。我还尝试了其他建议,例如window.location = $(this).data("link")。
加载页面时,表格行不可点击。如果我将设置window.location 的操作替换为警报,我会在页面加载时收到警报对话框,而不是在用户单击表格行时。
上面的coffeescript代码是song.js.coffee文件中唯一的代码。我是否遗漏了需要围绕代码包装的任何内容?
部分答案:在第一条评论中建议的原始咖啡脚本代码之前添加$ -> 确实使表格行可选择一次。我从其他阅读中相信,美元符号变量已成为 jQuery 的别名(一个例子是在 Coffeescript 的小书的成语章节:http://arcturo.github.io/library/coffeescript/04_idioms.html)。
不幸的是,在页面加载后,可以选择一个表格行,从而显示编辑页面,但如果用户返回页面,无论是使用浏览器上的后退按钮还是返回页面的链接,表格行不再可选择。
新的coffeescript代码是:
$ ->
$("tr[data-link]").click ->
window.location = this.dataset.link
上面的代码是从javascript到coffeescript的正确翻译吗?我是两种脚本语言的新手。
在 Rails 4 中使用咖啡脚本制作可点击的表格行有不同的答案吗?
谢谢。
【问题讨论】:
标签: javascript ruby-on-rails coffeescript