Событие Javascript не запускается - PullRequest
0 голосов
/ 19 июня 2010

После нажатия #theButton должно появиться предупреждение. Почему ни одно из событий не запускается с помощью следующих методов? Заранее спасибо.

  <html>
     <head>
      <script type="text/javascript" language="javascript">

       var theButton = document.getElementById("theButton");

       theButton.onclick = function(){alert("Clicked!");}
       theButton.onclick = clickAlert;
       theButton.onclick(alert("Clicked!"));

       function clickAlert(){
        alert("Clicked!");
       }
      </script>
     </head>
     <body>
      <input type="button" id="theButton">
     </body>
    </html>

Ответы [ 5 ]

2 голосов
/ 19 июня 2010

У вас есть три проблемы

  1. Вы ошиблись function в строке 7. (Между прочим, это приводит к ошибке времени выполнения)
  2. Вы пытаетесь получить доступ к узлу #theButtonпрежде чем он станет доступен в DOM.Примите совет Пекки для этого
  3. Вы перезаписали свойство onclick в строке 8 - не уверены, что вы делаете это специально или что
1 голос
/ 19 июня 2010

Это работает, если вы поместите onclick внутри тега input (и правильно пишете):

<html>
     <head>
      <script type="text/javascript" language="javascript">



       function clickAlert(){
        alert("Clicked!");       

       }

      </script>
     </head>
     <body>
      <input type="button" id="theButton" NAME="theButton" onclick="clickAlert()">
     </body>
    </html>
1 голос
/ 19 июня 2010

Мне нравится ответ jQuery.ready(), но я полагаю, что вы также можете переместить блок <script> до некоторой точки после того, как вы нажмете кнопку, как в конце страницы.

1 голос
/ 19 июня 2010

Попробуйте обернуть его в функцию document.Ready ().

1 голос
/ 19 июня 2010

Потому что theButton еще не существует, когда вы запускаете скрипт?

Оберните его в событие onload тела или в ready() jQuery.

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