我有一个想要延迟的 document.onclick 函数。我似乎无法正确使用语法。
我的原始代码是
<script type="text/javascript">
document.onclick=check;
function check(e){do something}
我尝试了下面的代码,但该代码不正确,该函数没有执行,也没有发生任何事情。
<script type="text/javascript">
document.onclick=setTimeout("check", 1000);
function check(e){do something}
我尝试了下一组,函数执行了,但没有延迟。
<script type="text/javascript">
setTimeout(document.onclick=check, 1000);
function check(e){do something}
此代码的正确语法是什么。
TIA
编辑:
解决方案都很好,我的问题是我使用函数检查来获取被点击元素的 id。但是在延迟之后,没有“记忆”被点击的内容,所以函数的其余部分不会被执行。Jimr 编写了短代码来保存点击事件。
正在运行的代码(在 IE6 中不起作用)
document.onclick = makeDelayedHandler( check, 1000 );
// Delay execution of event handler function "f" by "time" ms.
function makeDelayedHandler( f, time)
{
return function( e )
{
var ev = e || window.event;
setTimeout( function()
{
f( ev );
}, time );
};
}
function check(e){
var click = (e && e.target) || (event && event.srcElement);
.
.
.
谢谢你们。
更新:kennebec 的解决方案适用于 IE6。