Почему это простое событие jQuery on click не работает?

0

jQuery загружается (версия 1.8.3) в моем заголовке.

но если я попробую это:

<button id="idiot" type="button">Generate</button>

<script> 

$( document ).ready(function () {

  $("#idiot").on("click", "#idiot", function () {

    alert( 'working');

  });

});

</script>

Я ничего не получаю.

Почему я хочу, чтобы афер нажал на эту кнопку всплывающее окно предупреждения. Но теперь он не работает. Зачем?

  • 0
    убрать 2-й аргумент #idiot
Теги:

5 ответов

1
Лучший ответ

Попробуй это

$("#idiot").on("click", function () {
    alert('working');
});

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

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

DEMO

Документация для.on() здесь

  • 1
    Спасибо, второй работает; D
1

Вы пытаетесь использовать делегирование событий, где элемент не имеет потомков. Если ваш элемент является статическим (создайте по разметке, когда он загружен), тогда нет необходимости использовать делегирование событий, вы можете зарегистрировать обработчик, как показано ниже в обработчике dom

//shortcut for document ready
jQuery(function ($) {
    $("#idiot").on("click",function () {
        alert('working');
    });
});

Демо: скрипка

Если элемент создается после того, как dom готов скриптом, тогда вам нужно использовать делегирование событий, тогда вам нужно связать обработчик с уже существующим элементом, таким как объект документа или любой другой статический элемент, а затем передать второй аргумент как строку для переключатель динамического элемента

$(document).on("click", '#idiot', function () {
    alert('working');
});
  • 0
    хм, все еще не работает.
  • 0
    @ user3110329 см. jsfiddle.net/arunpjohny/3KhwW/1
1
$( document ).ready(function () {

  $("body").on("click", "#idiot", function () {

    alert( 'working');

  });

});
0

Вам не нужно выбирать потомка.

Используйте следующее:

$( document ).ready(function () {

  $("#idiot").on("click", onIdiotButtonPress);

});

function onIdiotButtonPress(event){
        alert( 'working');
}

Вот работающий скрипт

0

Проверь это :-

http://jsfiddle.net/SXzK7/

<button id="genius" type="button">Generate</button>

 $("#genius").click(function () {

    alert( 'you are a genius');

});

Ещё вопросы

Сообщество Overcoder
Наверх
Меню