HTML:
<div id="myID" onclick="cc(this.id)">Click Here</div>
JavaScript的:
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);
}
错误:
Uncaught ReferenceError: cc is not defined
答案 0 :(得分:9)
您的JSFiddle首选项设置为“onload”,因此JavaScript窗格的内容包含在一个函数中。
这个范围cc
(dd
不存在,为jsfiddle示例创建了一个额外的问题)到该函数并阻止它成为全局函数。
由于您尝试从内部事件属性调用它,因此您处于不同的范围内,无法访问它。
作为快速修复,您可以将首选项更改为“nowrap”,但这不会使代码符合最佳实践。
建议避免使用binding event handlers with Javascript的内在事件属性。 YUI3提供event module,jQuery提供on
method来帮助解决此问题(其他库可用)。另见:Unobtrusive JavaScript。
答案 1 :(得分:2)
确实如此,你的小提琴中只有两个错误:
dd
而非cc
cc
函数分配给全局对象:window.cc = function(){…};
答案 2 :(得分:1)
window.cc = function(id) { ...
变量和函数似乎都在其范围内......