引用错误:未定义functionName
Reference error: functionName is not defined
当我在HTML元素上使用onClick="functionName()"
属性运行任何函数时,它会说functionName没有定义。
但它是有定义的!
function functionName() {
//functional stuff
}
我也试过:
$(document).ready(function() {
function functionName() {
//functional stuff
}
})
但这对没有影响
在html文件中,按钮在这里
html body div table tbody tr td button
脚本标签在这里
html head script
请有人向我解释为什么会发生这种事。
OnReady应该失败,因为解析器在解析onClick属性时创建了一个事件处理程序。在这种情况下,单击事件被指向一个不存在的(null)函数引用。
以小提琴为代表http://jsfiddle.net/muglio/gzeksLr5/1/(失败)
第二个fiddle表示head标记中的内联javascript。在这种情况下,浏览器在到达onClick属性之前就已经解析并向DOM添加了functionName。
作品http://jsfiddle.net/muglio/LoL9Ldzr/1/
如果你把同样的脚本放在一个外部文件"functionName.js"中,并在头中的同一个地方调用loaded,你就会产生竞争条件的可能性。
脚本可以在解析onclick属性之前或之后加载。没有保证。
通常,您应该避免内联javascript,原因与您希望避免内联css的原因相同。您应该用javascript设置onclick处理程序,以避免将控制器和视图耦合在一起。
<script>
//Using jquery here because it is clearly being used in the initial ask :)
$(document).ready(function(){
function functionName() {
}
$('#myButton').on('click',functionName);
});
</script>
html body div table tbody tr td <button id="myButton"></button>
希望这能帮到你。
相关文章:
- javascript: functionname() instread of functionname()
- SCRIPT5007:属性onclick=;JavaScript:functionName('name'
- 未捕获的类型错误:无法读取属性'fitBounds'谷歌地图(markrWithlabel js)中未定
- emscripten+sdl=引发异常:TypeError:无法设置属性'widthNative'的未定
- ReferenceError:Can't查找变量:functionName
- ExceptionsManager.js:61无法读取属性'getCurrentPosition'的未定
- 未捕获的ReferenceError:未定义项
- 为什么我会得到错误Uncaught TypeError:无法设置属性'显示'在Javascript中未定
- 找不到未定错误的属性长度
- “window.functionname&&functionname()”是做什么的
- attrs.$set('ngClick', functionName + '()');不
- var functionName = function() 不是一个函数
- $.functionName() 是什么;在JavaScript中的意思
- JSON 对象中的未定义项
- 为什么 $(functionName()) 不起作用
- 未捕获的ReferenceError:未定义父级
- 引用错误:未定义functionName
- 让我的jQuery插件工作有困难.TypeError:$(..).functionName不是函数
- 当使用window.open将数据从父级传递到子级时,为什么我会得到'无法读取属性'元素'的未定
- 如何在dojo或JavaScript中检查多个未定义项