2016-01-14 2 views
0

У меня есть меню навигации, которое мне нужно скрыть после того, как была нажата ссылка. Вот мой код:jQuery удалить класс, но сначала перейдите по ссылке

jQuery("#nav a").click(function(e){ 
    e.preventDefault(); 
    var body = jQuery('body'); 
    if (body.hasClass('display-header')) 
    { 
     body.removeClass('display-header'); 
     jQuery('.overlay').fadeOut(200); 
    } 
}); 

Класс удаления отлично работает, но ссылка не будет находиться в правой части. (Представьте себе одну страницу с привязными ссылками.)

Как бы вы это сделали?

спасибо.

+3

Итак, зачем использовать 'e.preventDefault();'? – j08691

+0

То, что он хочет сказать, это 'e.preventDefault()' также остановит перемещение браузера на привязку к закладке. –

+0

Отлично. Большое спасибо. Я удалил предупреждение по умолчанию, и все это хорошо :) –

ответ

0

Попробуйте удалить:

e.preventDefault();

и посмотреть, если это поможет.

из documnetation:. api.jquery.com/event.preventdefault/

«Например, щелкнул якорей не будет брать браузер на новый URL Мы можем использовать Event.isDefaultPrevented(), чтобы определить, является ли этот метод называется обработчиком событий что было вызвано этим событием ».

Кроме того, если бы вы могли предоставить полный HTML-код &, который воспроизводит вашу проблему - это очень поможет!

+0

Perfect. Большое спасибо. Я удалил предупреждение по умолчанию, и все хорошо :) –

1

Я думаю, что вы должны попытаться использовать e.stopPropagation() для того, чтобы делать то, что вы хотите.

Прочитайте этот ответ: event.preventDefault() vs. return false

Увидимся.

+0

Это будет зависеть только от того, что было вокруг якоря, но нет очевидной причины использовать здесь 'stopPropagation'. Просто удалить 'preventdefault()', вероятно, будет достаточно. –

+0

Отлично. Большое спасибо. Я удалил предупреждение по умолчанию, и все хорошо :) –

 Смежные вопросы

  • Нет связанных вопросов^_^