2013-03-11 78 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'

小错误,但花了很多时间!

相关问题