2012-02-07 37 views
1

我正在設置jquery + rails應用程序。包括jquery似乎沒有問題。最後好不容易生成的源文件看起來像--->未在Rails 3項目中執行的Jquery代碼

<!DOCTYPE html> 
<html> 
    <head> 
     <title>CodeAliker</title> 
     <link href="/assets/application.css?body=1" media="screen" rel="stylesheet" type="text/css" /> 
<link href="/assets/bootstrap.css?body=1" media="screen" rel="stylesheet" type="text/css" /> 
     <script src="/assets/jquery.js?body=1" type="text/javascript"></script> 
<script src="/assets/jquery_ujs.js?body=1" type="text/javascript"></script> 
<script src="/assets/application.js?body=1" type="text/javascript"></script> 
     <meta content="authenticity_token" name="csrf-param" /> 
<meta content="EIklYq2jXM/BSsN+M0V5x9GoFA+WjwYuD0kuLBkjIUg=" name="csrf-token" /> 
    </head> 

    <body> 

     <script src="/assets/dashboard.js?body=1" type="text/javascript"></script> 
<link href="/assets/dashboard.css?body=1" media="screen" rel="stylesheet" type="text/css" /> 

<div class="topbar"> 
    <div class="fill"> 
      <div class="container"> 
      <a class="brand" href="#">CodeAliker</a> 
      <ul class="nav"> 
       <li class="active" name='useritem'> 
        <a href="#user" >+myth</a> 
       </li> 
       <li name='dashitem'> 
        <a href="#panel">Dashboard</a> 
       </li> 
       <li> 
        <a href="/about.html">About</a> 
       </li> 
       <li class="nav secondary"> 
        <a href="/getout">SignOut</a> 
       <li> 
      </ul> 
      </div> 
    </div> 
</div> 

<div id="bodydiv"> 
    <div class="container-fluid"> 
    <div class="sidebar"> 
       <table class="bordered-table"> 
       <thead> 
        <tr> 
        <th>BATCH List</th> 
        </tr> 
       </thead>       
       <tbody id='table-body'> 
        <tr> 
        <td><a href="#">samplebatch</a></th> 
        </tr> 
       </tbody>  
      </table> 
    </div> 

    <div class="content"> 
       ... 
    </div> 
    </div> 
</div> 


    </body> 
</html> 

我在文件dashboard.js jQuery代碼看起來像 - >

$('ul.nav li').each(function(){ 
    console.log('Iterating'); 
}); 

$('a').bind('click', function() { 
    alert('Unobtrusive!'); 
}); 

的代碼不會被執行,爲什麼呢?然而,在dashscript.js上插入一個簡單的console.log()打印!

+0

爲什麼你在'body'裏放一個'script'和'link'?只把所有東西都放在'頭部'。並嘗試。 – 2012-02-07 08:03:09

+0

它是控制器特定的腳本而不是應用程序範圍的腳本,因此我將它們包含在我的'dashboard.html.erb'文件中。生成的代碼沒有把它放在頭上。 :| – 2012-02-07 08:14:22

+0

dashboard.js是否正在下載?你可以檢查小提琴手。另外,你已經把查詢字符串刷新腳本,嘗試增加它到body = 2。您可能已更新腳本,並且您的瀏覽器已緩存舊版本。 – 2012-02-07 08:18:57

回答

2

我已經把你的代碼中jsFiddle.net和它的工作原理:http://jsfiddle.net/kskHX/2/

可能有問題,像

  • dashboard.js不獲取下載,可能是網址不正確或無效。檢查小提琴手,螢火蟲或鉻控制檯的錯誤。
  • 您的瀏覽器緩存了js文件,並且更新後的文件沒有下載。更改您的js的查詢字符串,然後重試。

解決方案

dashboard.js漸漸下載,但並沒有獲得執行的功能,要求代碼轉移到$(document).ready(和它的工作。

希望這個信息可以幫助你。

+0

其他的東西,dashboard.js正在下載。此外,我清除了瀏覽器緩存並重新嘗試了一遍。 :| – 2012-02-07 08:29:57

+1

是!現在完美無瑕。感謝您的幫助! :) – 2012-02-07 08:55:53