繁体   English   中英

Rails 4只能从link_to调用一次javascript

[英]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.

 
粤ICP备18138465号  © 2020-2024 STACKOOM.COM