Не удается выполнить событие нажатия кнопки jquery bind - PullRequest
2 голосов
/ 31 июля 2010

test.html:

 <html> 
     <head>
        <script type="text/javascript" src="jquery-1.4.2.js"></script>
        <script type="text/javascript" src="test.js"></script>
     </head>
     <body>
        <input id="but2" type="button" value="2"/>
     </body>
 </html>

jquery-1.4.2.js загружается с http://jquery.com/

test.js:

var fn=function(){
  alert('success!');
};

$('#but2').click(fn);

При нажатии на кнопку ничего не происходило. Я отлаживал в течение очень долгого времени, но не нашел причину. Пожалуйста, помогите.

1 Ответ

4 голосов
/ 31 июля 2010

Оберните его так, чтобы код не запускался до тех пор, пока документ не загрузится.

Попробуйте: http://jsfiddle.net/ApDKU/

$(function() {
    var fn=function(){
      alert('success!');
    };

    $('#but2').click(fn);
});

Выполнение:

$(function() {...});

... совпадает с

$(document).ready(function() {...});

... которые вызывают запуск кода только после завершения загрузки тега <body>.

То, как вы это сделали, код, который прикрепил обработчик click к #but2, выполнялся до того, как #but2 загрузилось на страницу.

...