未捕获的ReferenceError:未定义’functionName’

所以我在.jsp文件中检查了我的脚本标签:

  "some content here ...."  

在同一个.jsp文件中我有一个标签:

  

但是,在我的JavaScript文件中,我有:

 $(document).ready(function(){ $('current').click(function(event){ function functionName() { ....... } 

不知何故,我在Chrome控制台中不断收到错误消息:

未捕获的ReferenceError:未定义functionName

将您的functionName()移出$(document).ready(function(){

 function functionName() { ....... } $(document).ready(function(){ $('.current').click(function(event){ functionName(); }); }); 

此外,您需要使用. 按类别定位元素或按id定位目标元素

因此$('.current')将选择class="current"任何元素, $('#current')将选择id="current"的元素

最后要注意的是更新你的jQuery版本,因为1.3.1已经非常过时,它缺少许多有用和重要的function,这些function得到了更高版本的支持。

不要将你的函数包装在DOM ready($(document).ready(function(){) handler.As它是一个匿名函数,所以你的functionName()函数有local scope 。所以你不能在DOM ready之外调用它

阅读JavaScript中的变量范围是什么?


http://api.jquery.com和http://learn.jquery.com

在onLoad中调用functionName时,该函数尚未在文档中。 尝试将函数functionName输出。 例如,

  

移动函数将是修复它的一种方法,但另一种方法是简单地从“就绪”处理程序调用函数,或者如果从“加载”处理程序加载所有页面内容真的很重要:

 $(document).ready(function() { function functionName() { // whatever } functionName(); }); 

不必要地污染全局命名空间通常是一件坏事。

function functionName() {应该在$(document).ready(function(){之外定义

 function functionName() {...} $(document).ready(function(){...}); 

如果你在document.ready定义它,那么它的范围将限制在这个函数中。

只有你可以定义functionName()何时从$(document).ready(

 $(document).ready(function(){ function functionName() {...} // but in your case below function // is calling from body when its loaded functionName(); //from here you can call } );