类型错误$不是函数

我在我的网站上使用基于jQuery的记忆游戏 。 它整体运作良好,但我想要一个“再次播放”链接和最后显示的统计数据。 我无法使用该代码。 我看到这个错误:

TypeError: $ is not a function [Break On This Error] var game = $('div.slashc-memory-game'); // get the game 

这是JS:

  // this script shows how you can get info about the game var game = $('div.slashc-memory-game'); // get the game var info = $('p#info').find('span'); // get the info box var playAgain = $('a#play-again').css('visibility', 'hidden'); // get the play again link // format time like hh:mm:ss var formatTime = function(s) { var h = parseInt(s / 3600), m = parseInt((s - h * 3600) / 60); s = s % 60; return (h < 10 ? '0' + h : h) + ':' + (m < 10 ? '0' + m : m) + ':' + (s < 10 ? '0' + s : s); } // listen for game 'done' event game.bind('done', function(e) { // show basic stats var stats = game.slashcMemoryGame('getStats'); info.html('Success ! Number of clicks : ' + stats.numClicks + ', elapsed time : ' + formatTime(parseInt(stats.time / 1000)) + '.'); playAgain.css('visibility', 'visible'); // show link }); // play again action playAgain.click(function(e) { playAgain.css('visibility', 'hidden'); // hide link info.html('Memory Game, click to reveal images'); // reset text game.slashcMemoryGame('restart'); // restart game e.preventDefault(); }); 

这是一个小提琴

尝试用jQuery()替换$(),看看是否继续出现此错误。 指示它不是函数的错误意味着尚未加载jQuery文件或故意释放$ name。

如果jQuery()函数不起作用,请确保在脚本块/文件之前加载jQuery文件。

随着小提琴自动添加onloadfunction,你的代码实际上工作正常: http : //jsfiddle.net/ZXMUB/5/

我所做的只是取消注释游戏变量分配的第一行,并从js窗口中删除结束标记。

您确定在您的实际站点上代码是在$(document).ready函数(或类似的东西)中并且jQuery库是否正确加载?

您的代码缺少文档就绪处理程序。 更新:

http://jsfiddle.net/ZXMUB/1/

将代码包装在“就绪”函数中,就像这样

 $(function(){ ... }); 

您的代码在加载jquery之前正在执行。