2013-08-23 129 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哈希鍵/值對。

你應該很好去。

相關問題