Ответ 1
В обработчике событий добавьте e.preventDefault();
(предполагая, что e
- имя переменной, содержащей событие):
$('.service').click(function(e) {
e.preventDefault();
});
У меня есть страница с некоторыми функциями jQuery. HTML на странице выглядит так:
<a href="#" class="service">Open</a>
Когда я нажимаю кнопку "Открыть", скрывается скрытая панель. Сам jQuery отлично работает, когда я нажимаю кнопку, это также приводит меня к началу страницы.
Является ли это поведение defualt и как я предотвращаю, чтобы каждый href="#"
мог забрать меня в начало страницы.
Примечание. Я мог бы добавить id и сообщить href, чтобы направить этот идентификатор. Я не хочу делать это по разным причинам (включая добавление ненужного кода).
В обработчике событий добавьте e.preventDefault();
(предполагая, что e
- имя переменной, содержащей событие):
$('.service').click(function(e) {
e.preventDefault();
});
<a href="#!" class="service">Open</a>
<a href="#" onclick="return false;" class="service">Open</a>
ИЛИ
$(document).ready(function()
{
var a = $(".service");
a.click(function()
{
return false;
});
});
ИЛИ
$(document).ready(function()
{
var a = $(".service");
a.click(function(e)
{
e.preventDefault();
});
});
ИЛИ
<a href="#" onclick="event.preventDefault();" class="service">Open</a>
$('service').click(function() {
<your code>
return false;
});
return false
переопределяет стандартное поведение тега 'a и останавливает браузер, вернувшись в верхнюю часть страницы при нажатии.