#jquery #events #click
#jquery #Мероприятия #нажмите
Вопрос:
В настоящее время я не могу заставить этот код работать с помощью jQuery. То же самое событие срабатывает, когда я добавляю его специально к элементу ссылки «a». Я ожидал бы, что jQuery зарегистрирует оповещение, которое будет отображаться при нажатии на ссылку, но ничего не происходит, когда я нажимаю на эту ссылку. Я запускаю этот HTML-код в Chrome, и консоль DevTools вообще не показывает никаких ошибок! Я не уверен, что я мог делать неправильно, поскольку я делаю это просто по инструкции! В целом я видел, что jQuery не работает ни для чего javascript, но я опубликовал этот небольшой фрагмент кода для иллюстрации. Ценю любую помощь в выяснении того, что я мог делать неправильно!
<html>
<head>
<!-- jQuery version 3.3.1 -->
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js" />
<script>
$(document).ready(function() {
$("a").click(function() {
//This should show an alert when any link on the page is clicked.
alert("This is a test");
})
});
</script>
</head>
<body>
<a href="#">Click here to see alert</a>
<!-- This does not work! -->
<!-- This works fine!
<a href="#" onclick="javascript:alert('This is a test');">Click here to see alert</a> -->
</body>
</html>
Ответ №1:
Проблема в том, что script
тег не является самозакрывающимся. Вам нужно добавить отдельный </script>
тег после вашего jQuery.js ссылка:
<html>
<head>
<script src="https://ajax.googleapis.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<script>
$(document).ready(function() {
$("a").click(function() {
console.log("This is a test");
})
});
</script>
</head>
<body>
<a href="#">Click here to see alert</a>
</body>
</html>
Причина, по которой ваш onclick="javascript:alert('This is a test');"
все еще работает, заключается в том, что он не полагается на неработающую ссылку на jQuery.
Тем не менее, вам следует избегать использования on*
атрибутов события, поскольку они очень устарели. Ненавязчивые обработчики событий — безусловно, лучшая практика здесь.
Комментарии:
1. Вау, это сработало! Большое спасибо за быстрый ответ! 🙂
2. Я не могу заметно повысить голос за ответ, но я проголосовал. еще раз спасибо!