Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/416.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript onload函数中定义的函数的未捕获引用错误_Javascript - Fatal编程技术网

Javascript onload函数中定义的函数的未捕获引用错误

Javascript onload函数中定义的函数的未捕获引用错误,javascript,Javascript,HTML: 错误: 未捕获引用错误:未定义cc 示例:您的JSFIDLE首选项设置为“onload”,因此JavaScript窗格的内容包装在函数中 这将cc(dd不存在,为jsfiddle示例创建了一个额外的问题)作用于该函数,并使其不再是全局函数 由于您试图从内部事件属性调用它,因此您位于不同的作用域中,无法访问它 作为一个快速修复,您可以将首选项更改为“nowrap”,但是这不会使代码符合最佳实践 建议避免固有的事件属性,以支持。YUI3提供了一个,jQuery提供了帮助(其他库也可用)

HTML:

错误:

未捕获引用错误:未定义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) { ...