【问题标题】:Javascript can't see an object idJavascript 看不到对象 ID
【发布时间】:2015-10-24 01:41:23
【问题描述】:

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

【问题讨论】:

  • $("task_") 这不是正确的用法

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


【解决方案1】:

将您的 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();
      }
    });
 })

您不能在application.js 中使用erb 插值,并非在所有情况下,但在这种情况下。因为application.js 脚本在客户端工作。

Adding JavaScript to Rails

【讨论】:

  • 我觉得应该是这样 $("#task_" + id).fadeOut();
猜你喜欢
  • 2016-08-28
  • 2011-01-02
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2020-10-22
  • 2011-01-03
  • 2013-10-29
  • 1970-01-01
相关资源
最近更新 更多