Почему эта функция jQuery click не работает?

код:

<script src="http://code.jquery.com/jquery-latest.min.js" type="text/javascript"></script>
<script type="text/javascript">
    $("#clicker").click(function () {
        alert("Hello!");
        $(".hide_div").hide();
    });
</script>

Приведенный выше код не работает. Когда я нажимаю на #clicker, он не предупреждает и не скрывает. Я проверил консоль, и я не получил никаких ошибок. Я также проверил, загружается ли JQuery и действительно ли это. Поэтому не уверен, в чем проблема. Я также сделал функцию готовности документа с предупреждением, и это работало, поэтому я не уверен, что я делаю неправильно. Пожалуйста помоги. Спасибо!

Ответ 1

Вы должны добавить javascript-код в блок $(document).ready(function() {});.

то есть.

$(document).ready(function() {
  $("#clicker").click(function () {
    alert("Hello!");
    $(".hide_div").hide();
  });
});

Как Документация jQuery гласит: "Нельзя безопасно манипулировать страницей, пока документ не будет готов". jQuery обнаруживает это состояние готовности. Код, включенный внутри $( document ).ready(), запускается только после того, как страница Document Object Model (DOM) готова для выполнения кода JavaScript для

Ответ 2

Я нашел лучшее решение для этой проблемы, используя ON с $(document).

 $(document).on('click', '#yourid', function() { alert("hello"); });

для начала id, см. ниже:

$(document).on('click', 'div[id^="start"]', function() {
alert ('hello'); });

наконец, после 1 недели мне не нужно добавлять onclick triger. Надеюсь, это поможет многим людям.

Ответ 3

Ваш код может работать без document.ready(), просто убедитесь, что ваш скрипт находится после #clicker. Оформить заказ демо: http://jsbin.com/aPAsaZo/1/

Идея в готовой концепции. Если вы уверены, что ваш сценарий является самым последним на вашей странице или находится после элемента, на который влияют, он будет работать.

<!DOCTYPE html>
<html>
<head>


<meta charset=utf-8 />
<title>JS Bin</title>
</head>
<body>
  <script src="https://code.jquery.com/jquery-latest.min.js"
        type="text/javascript"></script>
  <a href="#" id="clicker" value="Click Me!" >Click Me</a>
  <script type="text/javascript">

        $("#clicker").click(function () {
            alert("Hello!");
            $(".hide_div").hide();

        });


</script>

</body>
</html>

Примечание: В демо заменить http с https есть в коде, или использовать этот вариант Demo

Ответ 4

Вы должны обернуть свой Javascript-код в $(document).ready(function(){}); Смотри этот JSfiddle.

Код JS:

$(document).ready(function() {

    $("#clicker").click(function () {
        alert("Hello!");
        $(".hide_div").hide();    
    });
});

Ответ 5

Попробуйте добавить $(document).ready(function(){ в начало вашего script, а затем });. Кроме того, имеет ли идентификатор div правильный идентификатор, т.е. Как id, а не класс и т.д.?

Ответ 6

Убедитесь, что на вашей кнопке ничего нет (такой div или trasparent img), который не следует нажимать на кнопку. Это звучит глупо, но иногда мы думаем, что jQuery не работает, и все, что есть, и проблема заключается в позиционировании элементов DOM.

Ответ 7

Вы можете использовать $(function(){ // code });, который выполняется, когда документ готов выполнить код внутри этого блока.

$(function(){
    $('#clicker').click(function(){
        alert('hey');
        $('.hide_div').hide();
    });
});

Ответ 8

Просто быстрая проверка, если вы используете шаблонизатор на стороне клиента, такой как руль, ваш js будет загружаться после document.ready, следовательно, не будет элемента, с которым нужно связать событие, поэтому либо используйте обработчик onclick, либо используйте его на теле и проверьте текущую цель