2013-03-11 80 views
0

我正在使用RoR,並且我從JQuery中添加了一個JPlayer到我的項目中。 我補充它在文件夾資產和在HTML我有這樣的:Uncaught TypeError:Object [object Object] has no method'jPlayer'

<title>jPlayer as an audio player</title> 
    <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1" /> 
    <link href="/jPlayer/skin/pink.flag/jplayer.pink.flag.css" rel="stylesheet" type="text/css" /> 

    <script type="text/javascript"> 
     //<![CDATA[ 
     $(document).ready(function(){ 

      $("#jquery_jplayer_1").jPlayer({ 
       ready: function() { 
        $(this).jPlayer("setMedia", { mp3:"http://www.jplayer.org/audio/mp3/TSP-01-Cro_magnon_man.mp3"}); 
       },swfPath: "js",supplied: "mp3",wmode: "window" 

      }); 
     }); 
     //]]> 
    </script> 

但我得到這個錯誤:

Uncaught TypeError: Object [object Object] has no method 'jPlayer'

在這一行:$("#jquery_jplayer_1").jPlayer({

o添加相應的寶石到寶石文件,所以我不知道什麼是錯的。任何想法?謝謝!

+0

你有沒有在你的頁面上包含必需的JS文件? – 2013-03-11 08:26:11

+0

確保您的JPlayer腳本包含在該頁面中。 – 2013-03-11 08:27:52

+0

如何包含/需要腳本和JS文件?謝謝! – Anna 2013-03-11 09:22:18

回答

1
  1. 確保您的腳本被拉入的頁面,以檢查一種方法是通過使用Chrome的調試器/火狐螢火蟲的「來源」選項卡,然後搜索文件。

  2. 確保在包含jQuery之後包含腳本,因爲它肯定是依賴於該腳本的。

  3. 確保您只包含一個jQuery庫。包括多個版本可能會導致問題。

  4. 如果有其他庫被覆蓋$,那麼您的代碼不起作用,因爲$不再是jQuery的別名。您可以使用jQuery.noConflict()以避免與使用相同變量$的頁面上的其他庫衝突。

+0

嗨Dasun,是的我的腳本正在被拉,我檢查。點2意味着包括:

等...然後腳本?我不明白哪一個圖書館應該包含哪一點?點4,所以現在我不能使用$?我只是在代碼中使用$。 – Anna 2013-03-11 08:51:06

+0

我意識到我不必包含任何庫,因爲庫應該包含在裏面我沒有開發它,rails做到了,它在資產文件夾內查找文件,它自動執行。 – Anna 2013-03-11 10:44:36

+0

@Dasun var'$ = jQuery.noConflict();'在我的腳本幫了我很多之前 – vladkras 2013-07-11 13:54:10

0

那麼兩天後,這個問題我解決了它,我忘了,包括這個文件jquery.jplayer.min.jsactive_admin.rb。它只是增加:config.register_javascript 'jquery.jplayer.min.js'

小錯誤,但花了很多時間!

相關問題