0

我有一个带有资源项目的 Rails 应用程序。我注意到如果我添加一些处理程序,它们会在页面更改时被删除。

    <%=link_to "Add fund","#",:class=>"addfund btn btn-primary"%>
    <form class="addfundform hide"action="<%=addFund_item_path :id=>item.id %>">
      <input type="text" name="fund">
      <input type="submit" value="Add" class="btn">
      <a href="#" class="cancelfund btn btn-warning" >Cancel</a>
    </form>

addfundform 默认是隐藏的,当你点击 addfund 时,会显示 addfundform 表格。

$(document).ready(function(){


function showfundform(){
    console.log("Hello")
    var $item=$(this);
    $item.next("form").show();
    return false;
}

$(".addfund").click(showfundform)


})

因此,当我单击 addfund 按钮时,会显示表单。但是,当我单击取消按钮时它会消失。(这很有趣,因为我还没有添加任何东西)在此之后,addfund 按钮不做任何事情。好像处理程序已被删除。另外,如果我不去项目页面。我进入新的项目页面,然后进入项目页面,处理程序未加载

这很奇怪,因为我没有通过 ajax 获取任何东西。这是一个 rails4 应用程序。我看到一个关于 turbolinks 的错误,虽然我不知道了

4

1 回答 1

0

Rails 4 带有 Turbolinks 的一个特性,它似乎引起了麻烦。按着这些次序:-

从您的 app/assets/javascripts/application.js 中删除 //= 需要 turbolinks。从您的 app/views/layouts/application.html.erb 中删除两个“data-turbolinks-track”=> true 哈希键/值对。

你应该很高兴。

于 2013-08-23T10:59:11.147 回答