未捕获的TypeError:对象不是函数

时间:2014-05-03 22:21:54

标签: javascript php html google-chrome uncaught-typeerror

我是javascript的新手,我在网上搜索过这个问题。这可能是一个简单的修复,但我无法摆脱这个错误(仅限铬,而不是FF)。

这是我的javascript:

<script>
    function clikked(){
        window.alert("sometext");
    }
</script>

在我的HTML中,我有很多像这样的DIV:

....
<div class="tiles2" id="1180" name="1180" onclick="clikked()"></div>
<div class="tiles2" id="1181" name="1180" onclick="clikked()"></div>
....

我在这里做错了什么?我总是在Chrome中遇到错误...记住,我是javascript的新手,所以每个信息都会有所帮助!

编辑:这里是php部分

for ($i = 0; $i<2000; $i++) {
    echo '<div class="tiles2" id="'.$i.'" name="'.$i.'" onClick="clikked()" ></div>';
}   

编辑2:这里是完整的Test.php代码:

<!DOCTYPE html PUBLIC "-//IETF//DTD HTML 2.0//EN">
<HTML>
   <HEAD>
      <TITLE>
         Test
      </TITLE>
   </HEAD>
<BODY>
<style type="text/css">
.tiles2 {
    width: 16px;
    height: 12px;
    float: left;
    background-color: white;
    opacity: 0.9;
}

.tiles2:hover {
    opacity: 0.2;
}
}
</style>


<?php
echo '<div style="width: 800px; height: 480px; background-image: url(australia/austr.png); margin: 0px auto">';

for ($i = 0; $i<20; $i++) {
    echo '<div class="tiles2" id="'.$i.'" name="'.$i.'" onClick="clikked()" ></div>';
}
echo '</div>';
?>

<script>
    function clikked(){
        alert("sometext");
    }
</script>
</BODY>
</HTML>

编辑3:好的,我已经解决了#34;它。我在带有xampp的localhost上运行它。当我将它上传到服务器时它工作。有谁知道为什么?

5 个答案:

答案 0 :(得分:1)

我遇到了同样的问题。我通过简单地重命名被调用的函数和你调用的名称来解决它。

因此,我的savData()已重命名为savKeyData(),我的函数savData() {}已重命名为savKeyData() {},并且有效。

答案 1 :(得分:0)

将脚本标记放在body的底部。

或者,使用onLoadonDocumentReady事件。

<div class="tiles2" id="1180" name="1180" onclick="clikked()"></div>
<div class="tiles2" id="1181" name="1180" onclick="clikked()"></div>
<script type="text/javascript">
    function clikked(){
        window.alert("sometext");
    }
</script>

<强> JSBin http://jsbin.com/ronacuka/1/

答案 2 :(得分:0)

试试这个。从你的标记中删除onclick并在底部页面输入你的js:

var i, tiles = document.getElementsByClassName('tiles2');
for(i = tiles.length; i--;) {
    tiles[i].addEventListener("click", clikked, false);
}

function clikked(){
    alert("some text");
}

答案 3 :(得分:0)

除非您使用HTML5,否则您的ID和名称属性必须以字母开头。

http://www.w3.org/TR/html4/types.html#type-id

  

ID和NAME令牌必须以字母([A-Za-z])开头,后面可以跟任意数量的字母,数字([0-9]),连字符(&#34; - &#34 ;),下划线(&#34; _&#34;),冒号(&#34;:&#34;)和句号(&#34;。&#34;)。

将您的doctype更改为&lt;!doctype html&gt;看看是否有效。

答案 4 :(得分:-2)

使功能如下:

<script type="text/javascript">
    function clikked(){
        alert("sometext");
    }
</script>

我认为主要的问题是你正在使用窗口全局范围。