我想通过Javascript对我的对象执行一些操作,但我不明白为什么我的脚本不绑定对象。有什么建议吗?
我的_index.html文件:
<table>
<% @tasks.each do |task| %>
<tr class='tasks' id="task_<%= task.id %>">
<td>
<input type="checkbox" class='check' data-id="<%= task.id %>" >
</td>
</tr>
<% end %>
</table>
以下是application.js中的脚本:
$(document).on('ready page:load', function () {
$('.check').on('change', function(){
if ($(this).is(':checked')) {
id = $(this).attr('data-id');
$("task_<%= task.id %>").fadeOut();
}
});
})
它什么都不做。但是,当我跟$(.tasks)
一起时,所有对象都会逐渐淡出。
答案 0 :(得分:3)
将您的javascript修复为:
$(document).on('ready page:load', function () {
$('.check').on('change', function(){
if ($(this).is(':checked')) {
var id = $(this).attr('data-id');
# get `id` from attribute
$("#task_" + id).fadeOut();
}
});
})
您不能在erb
中使用application.js
插值,不是在所有情况下,而是在此。因为application.js
脚本在客户端工作。