0

我的表中有很多行,每行包含一个按钮。单击按钮时,它会将远程 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();
4

1 回答 1

1

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

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

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

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

$("#task_#{task_id}").closest("tr").remove()
于 2013-11-08T07:38:59.210 回答