jQuery загружается (версия 1.8.3) в моем заголовке.
но если я попробую это:
<button id="idiot" type="button">Generate</button>
<script>
$( document ).ready(function () {
$("#idiot").on("click", "#idiot", function () {
alert( 'working');
});
});
</script>
Я ничего не получаю.
Почему я хочу, чтобы афер нажал на эту кнопку всплывающее окно предупреждения. Но теперь он не работает. Зачем?
Попробуй это
$("#idiot").on("click", function () {
alert('working');
});
Если элемент динамически добавлен в DOM, вам нужно будет делегировать его ближайшему статическому родительскому элементу, подобному этому
$(document).on("click","#idiot", function () {
alert('working');
});
Документация для.on() здесь
Вы пытаетесь использовать делегирование событий, где элемент не имеет потомков. Если ваш элемент является статическим (создайте по разметке, когда он загружен), тогда нет необходимости использовать делегирование событий, вы можете зарегистрировать обработчик, как показано ниже в обработчике dom
//shortcut for document ready
jQuery(function ($) {
$("#idiot").on("click",function () {
alert('working');
});
});
Демо: скрипка
Если элемент создается после того, как dom готов скриптом, тогда вам нужно использовать делегирование событий, тогда вам нужно связать обработчик с уже существующим элементом, таким как объект документа или любой другой статический элемент, а затем передать второй аргумент как строку для переключатель динамического элемента
$(document).on("click", '#idiot', function () {
alert('working');
});
$( document ).ready(function () {
$("body").on("click", "#idiot", function () {
alert( 'working');
});
});
Вам не нужно выбирать потомка.
Используйте следующее:
$( document ).ready(function () {
$("#idiot").on("click", onIdiotButtonPress);
});
function onIdiotButtonPress(event){
alert( 'working');
}
Проверь это :-
<button id="genius" type="button">Generate</button>
$("#genius").click(function () {
alert( 'you are a genius');
});
#idiot