У меня есть функция document.onclick, которую я хотел бы получить задержка. Я не могу получить синтаксис правильно.document.onclick setimeout function javascript help
мой оригинальный код
<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}
Каков правильный синтаксис этого кода.
ТИА
Edit:
Решения было все хорошо, моя проблема в том, что я использую функцию проверку, чтобы получить идентификатор элемента, щелкнул. Но после задержки нет «памяти» того, на что было нажато, поэтому остальная часть функции не выполняется. Jimr написал короткий код, чтобы сохранить событие clicked.
Код, который работает (не работает в 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.
Спасибо, kennebec, он работает в IE6. Хотя я не знаю, как это работает. – Jamex
@Jamex: Я вижу: в IE я думаю, что 'window.event' сбрасывается после вызова обработчика события, поэтому' srcElement' больше не доступен. –