为什么我的div中没有​​调用我的javascript函数?

时间:2014-02-16 04:02:59

标签: javascript jquery html css function

我想要一个div来调用一个函数(不要移动我在页面上的位置),而不是调用我的JavaScript函数 - 它会移动我在页面上的位置

我做错了什么? (在joomla里面跑)

为什么我的div函数没有调用我的JavaScript函数?

http://....com/test.php#p3


<div id="p1" onclick="testFunction()"> 
</div>

<div id="p3">Some content</div>
<script type="text/javascript">
   testFunction();
</script>
</div>


<script type="text/javascript">


function testFunction() {
   alert("Test");
}
</script>

2 个答案:

答案 0 :(得分:1)

这是因为你有两个独立的脚本块,第一个调用第二个脚本块中定义的函数。将它们放在一个单独的块中就可以了。

<div id="p1" onclick="testFunction()">click me</div>
<div id="p3">Some content</div>
<script type="text/javascript">
testFunction();
function testFunction() {
    alert("Test");
}
</script>

评论说你需要在顶部定义它是不正确的,请参见此处:http://jsfiddle.net/xDf5e/

如果你定义了一个变量函数,它们就是真的:var testFunction = function(...。通常,您应该在JS块的顶部定义函数,它使代码更具可读性和可维护性,但这并不是您的脚本无法工作的原因。

注意:你可以看到onclick在我给你的例子中也很好。

你有一个很好的关于功能提升的教程:http://elegantcode.com/2011/03/24/basic-javascript-part-12-function-hoisting/

答案 1 :(得分:-1)

应在使用前首先定义测试功能

 <script type="text/javascript">
     function testFunction() {
        alert("Test");
  }
 </script>
 <div id="p1" onclick="testFunction()"> 
 </div>
 <div id="p3">Some content</div>
 <script type="text/javascript">
   testFunction();
 </script>
 </div>