以下功能应该在我的网页的“ 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不应大写,但是当我这样做时,我得到一个错误,说“未实现”

预先感谢您的帮助。

最佳答案

您正在将onMouseDown事件设置为alert(“ Hello World”)的结果,而不是函数的结果。将其更改为如下所示,以使其无法运行,直到您打算运行它为止:

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


这将使警报作为函数的主体,并将该函数设置为onMouseDown事件的回调。

关于javascript - JavaScript中的Onmousedown无法正常工作-帮助!,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/2151942/

10-09 17:02