Как избежать перехода по нажатой ссылке без удаления атрибута "href" - PullRequest
4 голосов
/ 11 апреля 2011

Мне нужно немного отложить перенаправление на новую страницу после нажатия на определенные ссылки.

Сейчас я использую следующий jQuery:

$('.menu-element a').click(function(){
    var src = $(this).attr('href');
    $(this).removeAttr('href');             
    anim(src);
})

И все работает отлично. Он запускает очень короткую анимацию и после этого перенаправляет на нажатую страницу.

Но я бы хотел сохранить атрибут ссылки href (т. Е. В случае, когда кто-то щелкает дважды очень быстро).

Когда я добавляю $(this).attr('href', src); в конце кода, указанного выше, анимация не ждет завершения перенаправления на новую страницу сразу после нажатия на ссылку.

Как мне сохранить свойство href и избежать перенаправления страницы на новый адрес?

Ответы [ 2 ]

6 голосов
/ 11 апреля 2011

добавить return false в вашу функцию. Это не позволяет браузеру следовать по ссылке, а затем вы можете сделать это в своем javascript. например добавив что-то в конец функции anim (), которая обновляет местоположение.

Это также означает, что вам не нужно удалять ссылку из ссылки.

$('.menu-element a').click(function(){
    var src = $(this).attr('href');
    anim(src);
    return false;
})
4 голосов
/ 11 апреля 2011

Вы можете использовать event.preventDefault () . return false также будет работать, но также прекратит всплытие событий (в большинстве случаев это не проблема, вам просто следует об этом знать).

$('.menu-element a').click(function(event){
    anim($(this).attr('href'));
    event.preventDefault();
})
Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...