Javascript событие запускается до начала действия - PullRequest
0 голосов
/ 13 февраля 2011

Я пытаюсь написать сценарий, чтобы при воспроизведении встроенного звукового объекта изображение, которое я также встроил, изменилось.

function changePic() {
document.getElementById("sound").onclick = transform(document.getElementById("pic"));
}

function transform (pic) {
pic.src = "";
alert ("done");
}

Проблема в том, что при загрузке страницы код Javascript автоматически запускается, даже если я не нажимаю кнопку воспроизведения (автозапуск имеет значение false) на звуковом объекте.Кто-нибудь имеет представление о том, что вызывает это?

Спасибо!

1 Ответ

3 голосов
/ 13 февраля 2011

Когда вы пишете onclick = transform(...), вы вызываете transform и присваиваете результат onclick.

Необходимо установить обработчик на анонимную функцию, которая вызываетtransform, вот так:

document.getElementById("sound").onclick = function() {
    transform(document.getElementById("pic"));
};

Однако это неправильный способ добавления событий.
Вы должны позвонить element.addEventListener / element.attachEvent.(или просто используйте jQuery)

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...