2016-02-17 4 views
2

Должен быть очень простой ответ, но я не могу понять это прямо сейчас. У меня есть эта кнопка:кнопка click jquery не работает

<button id="logout" type="button">Logout</button> 

И это, как предполагается, чтобы запустить этот JQuery код в тегах сценария в нижней части тела:

$("#logout").addEventListener("click", function() { 
    alert('Button Clicked'); 
}); 

Однако оповещение не выскочит. Я не понимаю. Заранее спасибо.

ответ

10

addEventListener представляет собой метод DOM элемента не jQuery объект, который представляет собой массив, как структура, которая содержит все выбранные элементы DOM

Чтобы прикрепить событие, используя jQuery, использовать .on =>прикрепить функция обработчика событий для одного или нескольких событий на выбранные элементы

Попробуйте это:

$("#logout").on("click", function() { 
 
    alert('Button Clicked'); 
 
});
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
 
<button id="logout" type="button">Logout</button>

Использование JS:

document.getElementById("logout").addEventListener("click", function() { 
 
    alert('Button Clicked'); 
 
});
<button id="logout" type="button">Logout</button>

Edit: Вы можете получить первый DOM element из массива типа объекта, возвращенного jQuery selector использованием $(SELECTOR)[0] или $(SELECTOR).get(0)

0

Вы должны использовать метод on для использования обработчиков событий в jquery. AddEventListener - это основной метод событий JavaScript.

$("#logout").on("click", function() { 
    alert('Button Clicked'); 
}); 

Вы все еще можете использовать addEventListner заставляя JQuery код JavaScript:

$("#logout")[0] //Now, this is JavaScript Object 
    .addEventListener("click", function() { 
    alert('Button Clicked'); 
}); 
0

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

Пример:

$("#logout").on("click", function() { alert('Button Clicked'); }); 
$("#logout").click(function() { alert('Button Clicked'); }); 
1

addEventListener() метод регистрирует указанный слушателя на EventTarget.

Если вы действительно хотите использовать addEventListener затем написать следующий код:

var el = document.getElementById("logout"); 
el.addEventListener("click", function() { 
    alert('Button Clicked'); 
}, false); 

В противном случае сделать это с JQuery

$(document).on("click", "#logout", function() { 
    alert('Button Clicked'); 
}); 

ИЛИ

$("#logout").on("click", function() { 
     alert('Button Clicked'); 
    }); 
0

Альтернативный ответ:

$(document).on("click", "#logout", function() { 
    alert('Button Clicked'); 
}); 

Это работает и с динамически создаваемыми элементами.

0
<html> 
<head> 
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.3/jquery.min.js"></script> 
<script> 

    $(document).ready(function() { 
     $("#logout").on("click", function() { 
      alert('Button Clicked'); 
     }); 
    }); 
</script> 
</head> 

<body> 
    <button id="logout" type="button">Logout</button> 
</body> 

</html> 
0
var element = document.getElementById("logout"); 

element.addEventListener("click", myFunction); 

function myFunction() { 

    // your code logic comes here 
} 
0

Если вы идете к консоли, как в поджигатель и типа $() вы увидите объект JQuery, который показывает методы и свойства функции JQuery/объекта. На этом объекте нет addEventListener.

addEventlistener - это метод для DOM. Если вы хотите использовать jQuery, «записывая меньше и делать больше», используйте методы jQuery, такие как on. Это позволит вам добавить обработчик события в элемент.

$(document).on("click", "#logout", function() { 
    alert('button clicked'); 
}); 
Смежные вопросы