Не работает ни один файл в JavaScript - помогите! - PullRequest
0 голосов
/ 28 января 2010

Следующая функция должна выполняться во время события «onload» моей веб-страницы.

function setUpTranslation() {
   var phrases = document.getElementsByTagName("p");

   for (i = 0; i<phrases.length; i++) {
      phrases[i].number = i;
      phrases[i].childNodes[1].innerHTML = french[i];

      phrases[i].childNodes[1].onMouseDown = alert("Hello World");
  }
}

Может кто-нибудь сказать мне, почему предупреждение происходит каждый раз через цикл For?Я ожидаю, что это произойдет только тогда, когда пользователь нажмет кнопку мыши на одной из фраз в моем списке.

Кто-то сказал, что значение onmousedown не должно начинаться с заглавной буквы, но когда я это делаю, появляется сообщение об ошибке "не реализовано "

Заранее благодарю за помощь.

Ответы [ 3 ]

2 голосов
/ 28 января 2010

Вы устанавливаете событие onMouseDown на результат оповещения («Hello World»), а не на функцию. Измените его на что-то вроде этого, чтобы он не работал до тех пор, пока вы не намереваетесь запустить:

phrases[i].childNodes[1].onMouseDown = function() { alert("Hello World"); };

Это делает функцию с предупреждением в качестве тела функции и устанавливает эту функцию в качестве обратного вызова события onMouseDown.

2 голосов
/ 28 января 2010

Это потому, что ты это называешь. Вам нужно создать функцию, которая вызывает оповещение , когда называется:

  phrases[i].childNodes[1].onMouseDown = function() {alert("Hello World");};
1 голос
/ 28 января 2010
phrases[i].childNodes[1].onMouseDown = alert("Hello World");

должно быть

phrases[i].childNodes[1].onMouseDown = function( ){ alert("Hello World"); };

в противном случае он возвращает значение alert в качестве обработчика (который undefined и ничего не делает).

...