我的表中有很多行,每行包含一个按钮。 单击按钮时, 它会将远程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中 如果我发出警报,它会起作用,因为我可以看到警报窗口。 但它无法删除表中的行。
$(this).closest("tr").remove();
答案 0 :(得分:1)
在页面上,当您单击按钮时,将提交表单。事件监听器完成了他的工作并返回。上下文关闭。您无法再在该上下文中访问this
。
在您服务器的响应js中,新上下文为window
。
要解决您的问题,首先您需要根据任务的ID为每行分配唯一ID。
然后,在服务器响应中,将此操作分配给特定行,如
$("#task_#{task_id}").closest("tr").remove()