包括jQuery导致标准JavaScript停止运行?

我开始使用jQuery了。 我一直试图将它与我之前存在的一些JavaScript代码混合在一起,所以我不必重写所有内容。 我读过许多地方,这是完全可行的。 但是,每当我包含任何jQuery行时,标准JavaScript就会停止运行。

以下是一些例子:

    #testjquery { height: 300px; width: 300px; }    
This is the stuff.
$(document).ready(function() { function testClick() { document.getElementById("testjquery").style.background = "blue"; } });

这不起作用,当点击时我得到一个未定义的函数错误。

但是,把它放在体内

  
This is the stuff.
$(document).ready(function() { $("#testjquery").click(function() { $(this).css("background", "blue"); }); });

工作正常,与标准JavaScript中的等效工具一样。

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

 function testClick() { document.getElementById("testjquery").style.background = "blue"; } 

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

文档准备就绪时运行以下块,并创建一个本地函数testClick() ,该函数在匿名函数(由第一行上的function(){创建的function(){之外testClick()不可见。

 $(document).ready(function(){ function testClick(){ document.getElementById("testjquery").style.background="blue"; } }); 

如果要定义可以直接调用的全局函数,则不应将其放在文档就绪处理程序中。 改为将其更改为此。

 function testClick(){ document.getElementById("testjquery").style.background="blue"; }