Подтвердить что ты не робот

Jquery toggle: нажатие на ссылку переходит к началу страницы

Я создал jquery toggle, но когда я нажимаю ссылку, чтобы открыть div, он переместится в начало страницы. как я могу это исправить?

Я знаю, что я мог бы заменить ссылку на что-то еще, но мне нужно дать понять пользователям, что это ссылка, и что они могут нажать на нее.

4b9b3361

Ответ 1

Добавьте return false; в конец кода, который запускается при нажатии ссылки.

$('a.myLink').toggle(function() {
    // run my code
    return false;
});

В качестве альтернативы вы можете захватить объект event и вызвать .preventDefault().

$('a.myLink').toggle(function(event) {
    event.preventDefault();
    // run my code
});

Оба этих метода отключают поведение ссылки по умолчанию.

Первый из них также предотвратит пузырьковое событие, поэтому используйте его, только если вам не нужно использовать пузырьки событий.

Ответ 2

Это потому, что есть действие по умолчанию, связанное с элементами, такими как ссылки, флажки, переключатели и т.д. Вы можете отменить его так:

$('a.mylink').click(function(ev) { // Pass in the event object to your function
    // do stuff
    ev.preventDefault();
    return false;
});

Дополнительная информация здесь: http://api.jquery.com/event.preventDefault/

В редком случае присоединения обработчика события к дочернему элементу ссылки вы также захотите использовать event.stopPropagation(), чтобы остановить событие, пузырящее DOM.