可能重复:
“uncaught TypeError: Object is not a function” in JavaScript
我的完整js文件是这样的:
function addInning() {
alert("hello");
}
我的html文件包含该元素
<input name="addInning" type="button" value="Add Inning" id="addInning" onclick="addInning();">
并且代码不会执行。对于我的生活,我无法弄清楚为什么,因为这只是最简单的事情。 chrome的错误是“Uncaught TypeError:object is not function”。我在stackoverflow上搜索,发布的解决方案没有帮助。我觉得我正在失去理智。
答案 0 :(得分:3)
问题在于onclick="addInning();"
,addInning
指的是input
元素,因为这是为其name
和id
属性设置的值。仅当input
标记是form
元素的子标记时,才会出现此行为。
这个DEMO强调了这种行为。
要解决您的问题,请更改两者的名称 input
的{{1}}和id
,或name
的名称。此外,您可以明确地引用这样的全局函数:
addInning
使用后一个选项查看您的工作fiddle。小心使用JSFiddle,因为默认情况下它会将所有JS包装在onclick="window.addInning();"
事件中。您可以通过定义window.onload
来保持默认行为,如下所示:
addInning
我学到了新东西!
答案 1 :(得分:2)
将名称和ID从“addInning”更改为其他内容。这对我有用。
<script type="text/javascript">
function addInning()
{
alert("hello");
}
</script>
<input name="addInning2" type="button" value="Add Inning" id="addInning2" onclick="addInning();">
答案 2 :(得分:0)
由于它是一个函数,请尝试返回一些东西:
function addInning() {
alert("hello");
return true; // or return false; to prevent the click
}