JavaScript addEventListener для document.images - PullRequest
1 голос
/ 18 января 2012

Я пытаюсь динамически изменить изображение, когда я нажимаю на него, через addEventListener.У меня есть фотографии в массиве documents.images.У меня уже есть функция, написанная для переключения изображений.Проблема, с которой я сталкиваюсь, связана с этим в случае, если я нажимаю на изображение.

Это то, что я пробовал

document.images[i]src.addEventListener("click", MakeMove, false);

Ответы [ 2 ]

3 голосов
/ 18 января 2012

Вы хотите добавить событие к фактическому изображению:

document.images[i].addEventListener("click", MakeMove, false);

, но более старые браузеры не поддерживают эти обработчики событий DOM Level 2, поэтому, если на этих изображениях нет необходимости в обработчиках с несколькими щелчками, рассмотрите возможность выполнения

document.images[i].onclick = MakeMove;

EDIT

Чтобы передать параметр в MakeMove, вы должны установить onclick для анонимной функции, которая вызывает MakeMove с любыми необходимыми значениями:

document.images[i].onclick = function() { 
   MakeMove(12);
}

Исходный код:

document.images[i]src 

недействительно и

document.images[i].src 

будет строкой, к которой вы явно не можете добавить обработчик событий.

1 голос
/ 18 января 2012

Похоже, у вас есть синтаксическая ошибка.

Попытка:

document.images[i].addEventListener("click", MakeMove, false);

Необходимо добавить прослушиватель событий непосредственно на объект изображения. Используйте JSLint (www.jslint.com), чтобы избежать подобных ошибок в будущем!

Примечание: это будет работать только в браузере, который поддерживает (в основном все, кроме IE) .addEventListner. Вероятно, лучше использовать библиотеку, чтобы вам не пришлось об этом беспокоиться, но если вам нужно, .attachEvent ('onclick', MakeMove) будет обрабатывать IE и другие случаи.

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