Функция jQuery click не работает - PullRequest
1 голос
/ 19 декабря 2010

Итак, у меня очень простой код с формой и одна кнопка с jQuery. Я хочу связать некоторые действия, когда пользователь нажимает на эту кнопку, но по какой-то причине она не работает

Вот код

<!DOCTYPE html> 
<html> 
<head> 
 <script src="jquery.js"></script> 
</head> 
<body> 
<script> 
$('#jallerysubmit').bind('click', function() {
 alert('asd');
})
</script> 

<form> 
<input type="checkbox" name="box1">box1<br> 
<input type="checkbox" name="box1">box2<br> 
<input type="button" id="jallerysubmit" value="Proved"> 

</form> 
</body> 
</html> 

подскажите, пожалуйста, что не так с этим кодом, так как он не работает, даже если он не выдает ошибку

Ответы [ 6 ]

7 голосов
/ 19 декабря 2010

Вам нужно обернуть его в обработчик document ready.

<script> 
$(function() {
  $('#jallerysubmit').bind('click', function() {
    alert('asd');
  });
});
</script> 

Документы: http://api.jquery.com/ready/

2 голосов
/ 19 декабря 2010

Код JavaScript будет выполнен до загрузки DOM, поэтому элемент с идентификатором jallerysubmit не может быть найден (он еще не существует).

@ sje397 описал очень распространенный способ (по крайней мере, при использовании jQuery), как решить эту проблему.Другой способ - поместить скрипт в конец документа:

<html> 
   <head> 
       <script src="jquery.js"></script> 
    </head> 
    <body> 
        <form> 
            <input type="checkbox" name="box1">box1<br> 
            <input type="checkbox" name="box1">box2<br> 
            <input type="button" id="jallerysubmit" value="Proved"> 
        </form>
        <script> 
            $('#jallerysubmit').bind('click', function() {
                 alert('asd');
            });
        </script> 
    </body> 
</html>
1 голос
/ 19 декабря 2010

Ваш код, присоединяющий обработчик, выполняется до того, как элемент существует в DOM, поэтому селектор ничего не возвращает и обработчик не применяется. Поместите код в обработчик документов, и он должен работать. Вы также можете упростить использование ярлыка click .

<script> 
   $(function() {
       $('#jallerysubmit').click(function() {
           alert('asd');
       });
   });
</script> 
0 голосов
/ 19 декабря 2010

Всегда используйте функцию jquery в

(document).ready(function(){//ur jquery codes});

или

$().ready(function(){//ur jquery codes});

или

$.noConflict();
jQuery(document).ready(function($){//ur codes});

Как только DOM страницы загружен выше функции готовности, запускается.поэтому я рекомендую любителям jquery писать свои магические коды всегда в пределах этого кода

0 голосов
/ 19 декабря 2010

Рекомендуется использовать внешний файл .js, пример script.js:

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

function yourFunction() {
    $('#jallerysubmit').click(function() {
        alert('asd');
    });
}

и импортируйте его в свой HTML-файл в заголовке тега:

<script type="text/javascript" src="script.js"></script>
0 голосов
/ 19 декабря 2010

Включить оповещение («привет»);сразу же, чтобы убедиться, что jQuery работает правильно.Затем добавьте возвращаемое значение false в конец дескриптора отправки, чтобы убедиться, что страница не перезагружается при нажатии кнопки, также используйте document.readyСмотрите код ниже

<!DOCTYPE html> 
<html> 
<head> 
 <script src="jquery.js"></script> 
</head> 
<body> 
<script> 
$(document).ready(function(){
alert("hello");

$('#jallerysubmit').bind('click', function() {
 alert('asd');
 return false;
});

});
</script> 

<form> 
<input type="checkbox" name="box1">box1<br> 
<input type="checkbox" name="box1">box2<br> 
<input type="button" id="jallerysubmit" value="Proved"> 

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