2010-06-18 4 views
0

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

<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> 
+0

Внимание к деталям очень важно в программировании, недостаточное внимание к деталям показывает определенный недостаток профессионализма. Плохие названия орфографии и неправильной орфографии указывают на отсутствие внимания к деталям. Кроме того, ваша логика ошибочна, вы добавляете то же самое к onClick снова и снова, прежде чем кнопка на самом деле существует. –

+0

Если бы вы написали это для начала, я бы прекрасно, потому что я бы чему-то научился. Но сарказм ничего не учит. – Babiker

ответ

2

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

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

Поскольку theButton еще не существует при запуске сценария?

Оберните его в корпус onload или jQuery's ready().

+0

'' '' '' '' '' '' '' '' '' '' '' является оболочкой для события 'DOMContentLoaded', а не' laod'. – Crozin

+0

@Crozin Я знаю, но IIRC, получив 'DOMContentLoaded' без jQuery в браузерах, было ужасно сложно. Тем не менее, вы правы. –

+0

Что вы имеете в виду, пока не существует? – Babiker

1

Попробуйте обернуть его в документе. Функция Ready().

+0

Это не обязательно существует - OP не использует jQuery. –

1

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

+0

... или использовать событие 'onload'. –

1

Это работает, если вы поставите OnClick в пределах входного тега (и пишется все правильно):

<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> 
Смежные вопросы