ReferenceError:找不到变量:$

时间:2012-05-13 12:19:20

标签: javascript html5 cordova

嗨所有我正在开发一款游戏,当我在Chrome上运行时它可以工作但是当我在模拟器上尝试它时,我的javascript代码中出现错误,我无法理解其来源或原因

这是错误:

05-13 11:53:11.726: E/Web Console(790): ReferenceError: Can't find variable: $ at file:///android_asset/www/js/html5games.matchgame6.js:5

错误在第5行:这是我的javascript文件内容:

  var matchingGame = {};
  ***var uiPlay1 = $("#gamePlay1");***  //////line 5
  var uiPlay2 = $("#gamePlay2");
  var uiIntro = $("#popup");
  var uiExit = $("#gameExit");
  var uiNextLevel = $("#gameNextLevel");
  var uigameQuit =$("#gameQuit");
 var uiPlay3 = $("#gamePlay3");
 matchingGame.savingObject = {};

 matchingGame.savingObject.deck = [];

 matchingGame.savingObject.removedCards = [];

 // store the counting elapsed time.
  matchingGame.savingObject.currentElapsedTime = 0;

  //store the last-elapsed-time

//matchingGame.savingObject.LastElapsedTime = 0;//now


  // store the player name
  matchingGame.savingObject.palyerName=$("#player-name").html();
  matchingGame.savingObject.currentLevel="game6.html";
  // all possible values for each card in deck
matchingGame.deck = [
'cardAK', 'cardAK',
'cardAQ', 'cardAQ',
'cardAJ', 'cardAJ',

  ];

   $(  function(){init();}  );


  //initialise game
   function init() {


                    $("#game").addClass("hide");

                    $("#cards").addClass("hide");


                   uiPlay1.click(function(e) {
                    e.preventDefault();

            $("#popup").addClass("hide");
            startNewGame();


             });

                uiPlay2.click(function(e) {
                    e.preventDefault();
                $("#popup").addClass("hide");
                        var savedObject = savedSavingObject();
               // location.href =savedObject.currentLevel ;

                if (savedObject.currentLevel=="game6.html")
                 rejouer();
                 else 
                 location.href =savedObject.currentLevel ;

                //ResumeLastGame();
                //alert ("level :"+savedObject.currentLevel );

                });

            uiExit.click(function(e) {e.preventDefault();
                                     //alert("u clicked me ");
                                    }
                        );



                uiPlay3.click(function(e) {
                e.preventDefault();
                $("#popupHelp").fadeIn(500, function() {
                $(this).delay(10000).fadeOut(500)}); });


    }

任何想法都要提前感谢你

4 个答案:

答案 0 :(得分:5)

你可能没有包含jQuery。

答案 1 :(得分:3)

大概你没有在任何地方定义$函数。

也许您使用的文档假设您已加载Prototype.jsMootoolsjQuery或其中一个设置(very poor) name变量的库之一

答案 2 :(得分:1)

在使用$之前,请确保已加载jquery,mootools,其他javascript库等。

您是否已将文档库包含在文档末尾,并且在下载库之前已编写脚本。

确保您有一个引用您的库的脚本标记,然后获取您的脚本内容。

还有一点需要注意的是,当您的scriot执行时,您的文档可能尚未加载,并且页面上可能不存在某些控件,因此请确保将它们包装在将运行该函数的API中文档已完全加载。在jquery中,您使用$(document).ready(function(){});

答案 3 :(得分:-1)

我正在Ejecta开发一个JS应用程序。包含jQuery但是DOM准备好不能与Ejecta一起使用。而不是在网站/应用初始化我做这样的事情:

function func() {
    init();
    animate();
}

setTimeout(func, 1000);

这样可以加载和解析jQuery时间。