Функция щелчка jQuery не вызывается

#javascript #jquery

#javascript #jquery

Вопрос:

У меня есть простая страница для тестирования, на которой есть только кнопка, я ссылаюсь на внешний js-файл. Она отображает версию jquery в окне предупреждения, но при нажатии кнопки ничего не происходит. Что с этим не так?

Вот моя простая тестовая HTML-страница

 <title>Insert title here</title>
<!-- scripts -->
<script language="JavaScript" type="text/javascript" src="jquery.js"></script>
<script language="JavaScript" type="text/javascript" src="myscript.js"></script>
</head>
<body>
<form>
    <input  type="button"  tabindex="5"  value="jscript" id="testbutton" />
</form>
</body>
  

и вот содержимое моего файла myscript

 alert($.fn.jquery);
$('#testbutton').click(function(){
alert("test successful");
});
  

Я использую jQuery версии 1.6

Ответ №1:

Вероятно, потому, что DOM не готов к обработке JavaScript во время привязки обработчика щелчка. Попробуйте:

 $(document).ready(function() {
    $('#testbutton').click(function(){
        alert("test successful");
    });
});
  

Комментарии:

1. @Abhishek — Просто чтобы указать, я ответил первым, но ладно. (сначала упорядочивайте ответы по самому старому) 🙂

2. извините, я не видел время. Еще раз спасибо!

3. 44 секунды имеют решающее значение! ( 1 для обоих, хотя) 🙂

Ответ №2:

Вам нужен document.ready:

 $(document).ready(function(){
  alert($.fn.jquery);
  $('#testbutton').click(function(){
    alert("test successful");
  });
});
  

Это потому, что на ваш #testbutton нельзя ссылаться, пока он не загружен

Надеюсь, это поможет. Приветствия

Комментарии:

1. Спасибо, это сработало. итак, я полагаю, что эта функция .ready() требуется хотя бы один раз?

2. Извините, Эдгар, я раньше не видел, но Karim79 ответил на мой вопрос первым 🙂