JQuery. Нажмите не работает - PullRequest
       0

JQuery. Нажмите не работает

3 голосов
/ 12 октября 2010

У нас есть проблема в IE с некоторыми пользователями, у которых событие onclick не работает:

<button type="button" id="btnSomething" name="btnSomething" onClick="myFunction();">Continue</button>

После того, как копаться в сети, люди предложили использовать событие jcuery .click для кросс-браузерной совместимости.

Итак, я попробовал следующее:

<script type="text/javascript">$('#btnSomething').click(function(){myFunction();});</script>

Это не работает, я пытался добавить в оповещение («тест»); но это тоже не называется. Если это имеет какое-то значение, я не удалил onClick = "myFunction ();" из элемента кнопки, просто добавив вышеуказанный JS непосредственно после кнопки в файле HTML.

Ответы [ 5 ]

2 голосов
/ 12 октября 2010

Два очка здесь.Во-первых, вы должны связывать свои обработчики событий только после завершения DOM.jQuery облегчает это для вас: вы всегда должны помещать весь свой код jQuery в обработчик document.ready:

$(document).ready(function(){
    $('#btnSomething').click(function(){
        around ();
    });
});

Во-вторых, поскольку ваша функция уже имеет имя (around), вам не нужнодобавить лишнюю анонимную функцию;Вы можете назвать это так:

$(document).ready(function(){
    $('#btnSomething').click(around);
});
1 голос
/ 12 октября 2010

Как уже говорили другие, он нужен внутри обработчика document.ready, но он может быть намного короче, например:

<script type="text/javascript">
  $(function(){ 
    $('#btnSomething').click(around);
  });
</script>

Если у вас нет внутри обработчика ready, $('#btnSomething') может не найти элемент, так как его пока не будет в DOM.

0 голосов
/ 12 октября 2010

работает нормально.убедитесь, что ваш код jQuery запущен в блоке domready.см. здесь: http://jsbin.com/inubo4

0 голосов
/ 12 октября 2010

igor,

вам нужно будет сослаться на библиотеку jquery и затем сделать что-то вроде этого:

<script src= "http://ajax.googleapis.com/ajax/libs/jquery/1.4.2/jquery.min.js" type="text/javascript"></script>

$(function(){
   $('#btnSomething').click(function(){
       around ();
   });
});

также удалите секцию onclick из вашей кнопки - ненавязчивый JavaScript.надеюсь, что это работает ..

0 голосов
/ 12 октября 2010

Если кнопка содержится в форме, убедитесь, что вы возвращаете false в функции щелчка, чтобы предотвратить отправку формы.

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