2013-08-23 89 views
0

我有一个带有resrouce项目的rails应用程序。我注意到,如果我添加一些处理程序,它们会在页面更改时被删除。在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按钮不会执行任何操作。就好像处理程序已被删除。 另外,如果我不去物品页面。我去新的项目页面,然后到项目页面,处理程序没有加载etiher

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

+0

您是否可以使用类选择器将侦听器添加到某个其他页面,并且该代码被加载$('。cancelfund')。click(function(){$(self).hide();} :) –

回答

0

Rails 4具有Turbolinks的功能,它似乎是造成麻烦。请执行以下步骤: -

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

你应该很好去。

相关问题