[英]rails 4 can only call javascript once from link_to
我有一个Rails应用,其中包含我要使用JavaScript删除的项目列表并隐藏行。
我遇到的是,如果我单击一个链接,该项目将删除并且该行消失。 如果单击另一个,则不会调用该控制器,只是通过javascript刷新了页面。
show.html.erb
link_to image_tag("bin-20.png", :border => 0), '#', :title => 'Remove this item',
data:{ deleteitem: item.id }
item.js.coffee
$ ->
$("a[data-deleteitem]").click ->
urllink = "/itemisations/" + $(this).data("deleteitem")
divclass = ".item-" + $(this).data("deleteitem")
$.ajax
type: "POST"
url: urllink
dataType: "json"
data:
_method: "delete"
$(divclass).toggle()
alert("Item has been removed from your list")
如果我单击一个链接,然后单击另一个链接。 我在控制台中得到的输出是:
POST http://local-dev.com:3000/itemisations/636 200 OK 1.6s jquery.js?body=1 (line 9632)
GET http://local-dev.com:3000/items/60# 200 OK 7.88s turboli...?body=1 (line 59)
GET http://local-dev.com:3000/items/60# 200 OK 8.31s
因此,我可以看到,在第一次单击时,系统在控制器上运行delete调用,然后显示视图。 但是,在第二次单击上,对控制器的调用未运行...
哦,我运行指向咖啡脚本的链接而不是直接链接到远程控制器的link_to的原因是,我希望能够在例程中调用toggle
好的,看来我在这里没有使用Turbolink。 为了解决这个问题,我将脚本更改为以下内容
$(document).on 'ready page:load', ->
$("a[data-deleteitem]").click ->
urllink = "/itemisations/" + $(this).data("deleteitem")
divclass = ".item-" + $(this).data("deleteitem")
$.ajax
type: "POST"
url: urllink
dataType: "json"
data:
_method: "delete"
$(divclass).toggle()
alert("Item has been removed from your list")
声明:本站的技术帖子网页,遵循CC BY-SA 4.0协议,如果您需要转载,请注明本站网址或者原文地址。任何问题请咨询:yoyou2525@163.com.