Javascript onload函数中定义的函数的未捕获引用错误
HTML: 错误:Javascript onload函数中定义的函数的未捕获引用错误,javascript,Javascript,HTML: 错误: 未捕获引用错误:未定义cc 示例:您的JSFIDLE首选项设置为“onload”,因此JavaScript窗格的内容包装在函数中 这将cc(dd不存在,为jsfiddle示例创建了一个额外的问题)作用于该函数,并使其不再是全局函数 由于您试图从内部事件属性调用它,因此您位于不同的作用域中,无法访问它 作为一个快速修复,您可以将首选项更改为“nowrap”,但是这不会使代码符合最佳实践 建议避免固有的事件属性,以支持。YUI3提供了一个,jQuery提供了帮助(其他库也可用)
未捕获引用错误:未定义cc
示例:您的JSFIDLE首选项设置为“onload”,因此JavaScript窗格的内容包装在函数中 这将
cc
(dd
不存在,为jsfiddle示例创建了一个额外的问题)作用于该函数,并使其不再是全局函数
由于您试图从内部事件属性调用它,因此您位于不同的作用域中,无法访问它
作为一个快速修复,您可以将首选项更改为“nowrap”,但是这不会使代码符合最佳实践
建议避免固有的事件属性,以支持。YUI3提供了一个,jQuery提供了帮助(其他库也可用)。另见:
例如
变量和函数似乎在其作用域内…确实如此,您的小提琴中只有两个错误:
- 您调用了
而不是dd
cc
- 您将整个javascript包装在一个onload函数中(请参见左侧的下拉列表),并且变量和函数是该函数的本地变量和函数。将其移动到全局范围,或将
函数分配给全局对象:cc
window.cc=function(){…}代码>
很好的解释,所以我想接受这个答案,你能添加JSFIDLE链接吗。我有答案。但如果你加上它,它将是完美的。
<div id="myID" onclick="cc(this.id)">Click Here</div>
var timer;
var firing = false;
var begen = function(id) {
alert('tek');
};
var popupAc = function(id) {
alert('çift');
};
function cc(id) {
if (firing) {
popupAc(id);
clearTimeout(timer);
firing = false;
return;
}
firing = true;
timer = setTimeout(function() {
//begen(id);
clearTimeout(timer);
firing = false;
}, 250);
}
window.cc = function(id) { ...