2011-02-10 43 views
2

我想用Jquery和Rails 3實現一個簡單的對話框。我通過gem和'rails生成jquery:install -ui'命令來安裝Jquery。一切似乎都很好。我可以通過Ajax提交表單,並使用js.erb文件呈現不引人注目的JS。我的問題是我無法得到一個簡單的怪異對話框工作。Rails 3 Jquery UI對話框

這裏是我的JS:

$(document).ready(function(){ 
    $("#dialog").dialog(); 
}); 

和HTML:

<div id="dialog" title="Dialog">BLAH BLAH BLAH</div> 

夠簡單吧?那麼在頁面加載時我得到這個從螢火蟲:

$("#dialog").dialog is not a function 

我可以同時看到JS分鐘,正常的js文件包括在內。我甚至可以導航到jquery-ui.js中的對話框功能,所以我不知道爲什麼這不起作用。有任何想法嗎??

回答

0

否則,您必須在某處存在拼寫錯誤。你似乎已經擁有了一切。

因爲我沒有使用jquery gem,我只是用它創建了一個項目,創建了一個項目,一個空的模型,「頁面」,並將你的代碼添加到application.html.erb文件中,替換了yield,和一切工作。

我application.html.erb

1 <!DOCTYPE html>                     
    2 <html> 
    3 <head> 
    4 <title>Jq</title> 
    5 <%= stylesheet_link_tag :all %> 
    6 <%= javascript_include_tag :defaults %> 
    7 <%= csrf_meta_tag %> 
    8 <script> 
    9 $(document).ready(function(){ 
10  //console.log("loaded"); 
11  $("#dialog").dialog(); 
12 }); 
13 
14 </script> 
15 
16 </head> 
17 
18 <body> 
19 
20 
21 
22 
23 <div id="dialog" title="Dialog">BLAH BLAH BLAH</div> 
24 
25 
26 </body> 
27 </html> 

你需要添加過程的CSS ..

+0

我重建從頭開始一個全新的應用程序,只是爲了確保沒有別的干擾。我創造了與上面相同的東西。我仍然有錯誤!我在這裏把我的完整應用程序的開發版本:http://dev.high-elevation.com任何人有任何想法? – headz68

-1

固定!在Google員工上數小時後沒有找到任何東西。我開始玩從主站點直接下載的默認Jquery文件。將這些與生成的UJS文件交換後,我意識到訂單會有所作爲。因此,將jquery-ui.js文件重命名爲jqueryui.js確保jquery.js文件在UI文件之前加載。我想這是顯而易見的,但我沒有看到太多的Jquery文件順序,並使用生成器來安裝Jquery這樣命名它們。我正在使用Mac,所以也許finder命令文件不同,然後其他機器?我知道在使用默認名稱時,我不會是唯一遇到此問題的人。儘管如此,無論何時使用Jquery,總是在主Jquery庫之後加載UI!

1

以供將來參考,請注意,您可以在配置/ application.rb中控制加載順序:

config.action_view.javascript_expansions[:defaults] = %w(jquery jquery-ui.min rails)