Javascript无法看到对象ID

时间:2015-08-01 12:53:19

标签: javascript jquery ruby-on-rails ruby checkbox

我想通过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)一起时,所有对象都会逐渐淡出。

1 个答案:

答案 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脚本在客户端工作。

Adding JavaScript to Rails