【问题标题】:Does "this" object work in js.erb on Rails 3“this”对象是否在 Rails 3 上的 js.erb 中工作
【发布时间】:2013-11-08 07:15:42
【问题描述】:

我的表中有很多行,每行包含一个按钮。 当按钮点击时, 它会将远程 js 发送到我在控制器中的方法。 它应该删除按钮所在的行。

提前致谢。

= form_tag kill_running_task_remote_focus_path, :method => :get, remote: true do


  def kill_running_task
    # binding.pry
    # kill_task(params)
    respond_to do |format|
      # format.html # new.html.erb
      format.js
      # format.js { render :action => 'add_to_cart'}
    end

  end

然后我将以下代码放入我的 kill_running_task.js.erb 如果我放 alert ,它会起作用,因为我可以看到警报窗口。 但它不能删除表格中的行。

$(this).closest("tr").remove();

【问题讨论】:

    标签: javascript jquery ruby-on-rails erb


    【解决方案1】:

    在页面上,当您单击按钮时,表单将被提交。事件侦听器已完成工作并返回。上下文关闭。在这种情况下,您将无法再访问 this

    在你服务器的响应js中,新的上下文是window

    要解决您的问题,首先您需要根据任务的 id 为每一行分配唯一的 id。

    然后,在服务器响应中,将此操作分配给特定行,例如

    $("#task_#{task_id}").closest("tr").remove()
    

    【讨论】:

      猜你喜欢
      • 2015-02-08
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 1970-01-01
      • 2011-06-04
      • 1970-01-01
      • 2023-03-11
      • 1970-01-01
      相关资源
      最近更新 更多