2011-02-16 68 views
2

下面是我使用的是什麼:爲什麼在application.js中不使用Rails JQuery代碼?

的application.js:

$('#hfb').mouseup(function(){ 
$('#hideform').css('display', 'none'); 
}); 

頭從application.html.erb:

<head> 
<title>CommentsApp</title> 
<%= stylesheet_link_tag 'application', 'grid' %> 
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" %> 
<%= javascript_include_tag "http://ajax.googleapis.com/ajax/libs/jqueryui/1.7.2/jquery-ui.min.js" %> 
<%= javascript_include_tag "jquery-rails.js" %> 
<%= javascript_include_tag "application.js" %> 

<%= csrf_meta_tag %> 
</head> 

和事情,我想隱藏:

<a href="" id="hfb">Hide Form</a> 
<div id="hideform"> 
<% form_for Comment.new, :remote => true do |f| %> 
#form stuff 
<%= f.submit "Add comment" %> 
<% end %> 
</div> 

我在這裏錯過了什麼?

+0

你能請張貼在`html`渲染輸出, 'erb`代碼? – 2011-02-16 18:18:59

回答

3

我不知道爲什麼你正在嘗試鼠標鬆開,我只用點擊()和隱藏()

$(document).ready(function() { 
    $('#hfb').click(function(){ 
    $('#hideform').hide(); 
    return false; 
    }); 
}); 

它也可能被重新加載頁面,所以返回false從處理程序是好主意。

編輯 idlefingers也有一個好主意。在文檔準備就緒之前,您無法運行處理程序。

+0

感謝您的答案,似乎我不得不使用return false以及:) – Kesarion 2011-02-16 18:37:06

2

你需要在你的js中使用$(document).ready。此外,您還可以使用jQuery的「隱藏」方法,而不是明確改變CSS(這是所有隱藏那樣 - 它只是讀取利特勒爽):不是

$(document).ready(function() { 
    $('#hfb').mouseup(function(){ 
    $('#hideform').hide(); 
    }); 
}); 
相關問題