У меня есть функция 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
Редактировать:
Все решения были хорошими, моя проблема была в том, что я использовал функцию проверки, чтобы получить идентификатор элемента, по которому щелкали.Но после задержки нет «памяти» о том, на что нажимали, поэтому остальная часть функции не выполняется.Джимр написал краткий код для сохранения события клика.
Код, который работает (не работает в 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.