2013-03-13 3 views
1

Ниже приведен мой код. Теперь, когда мышь отсутствует, я хочу подождать 2000 миллисекунд, чтобы возобновить показ слайдов. Но изображение меняется, как только мышь выключена. Может ли кто-нибудь помочь?javascript setTimeout() не добавляет задержки

<img src="images/achiever.png" name="slide" alt="badge" 
width="130" height="130" onmouseover="pause()" 
onmouseout="javascript:setTimeout(resume(), 2000)" /> 
+0

Может опубликовать паузу() и резюме() функции здесь, а? –

ответ

8

Вы вызоваresume и передавая ее возвращаемое значение в setTimeout, а не проходя resume в него. setTimeout должен выглядеть следующим образом:

setTimeout(resume, 2000) 

Так же, как foo(bar()) выполняет бар и передает ее возвращаемое значение в foo, setTimeout(resume(), 2000)выполняетresume и передает ее возвращаемое значение в setTimeout.


Отдельно обратите внимание, что вы не используете javascript: псевдо-протокол с любыми onXYZ атрибутами, только в тех местах, где, как ожидается, URL (например, href на якорей). Так что ваш атрибут onmouseout должен выглядеть следующим образом:

onmouseout="setTimeout(resume, 2000)" 

Код в onXYZ атрибутов всегда код, а не URL. javascript: на самом деле заканчивается тем, что он бессмыслен label.

1

Аргумент setTimeOut должен быть функцией, и правильным способом передать функцию в качестве аргумента является использование имени функции без скобок. Если вы добавите скобки, вы фактически выполняете функцию и передаете результат в setTimeOut. Следовательно, это должно быть setTimeOut(resume,2000)

1

Пожалуйста, удалите круглые скобки. Пример: setTimeout (резюме, 2000);

1

Скобки вокруг resume() вызывают немедленную оценку функции. Удаление этих функций делает функцию вызова «указателем».

<html> 
<head> 
<script type="text/javascript"> 
function pause() { 
    //pause here 
} 

function resume() { 
    alert('resumed'); 
} 
</script> 
</head> 
<body> 
<img src="images/achiever.png" name="slide" alt="badge" width="130" height="130"  onmouseover="pause()" onmouseout="javascript:setTimeout(resume, 2000)" /> 
</body> 

Смежные вопросы