e.preventDefault - есть ли способ сделать по умолчанию? - PullRequest
8 голосов
/ 05 марта 2012

допустим, у меня есть ссылка:

<a href='http://example.com/file.zip' id='dl'>Download</a>

И пока кто-то нажимает на нее, я хочу что-то сделать, например:

$("#dl").live("click", function(e){
    e.preventDefault();
    $("#dlbox").fadeOut(500);
});

Есть ли способ после того, как яe.preventDefault, чтобы пойти дальше и сделатьDefault?что-то вроде

$("#dl").live("click", function(e){
    e.preventDefault();
    $("#dlbox").fadeOut(500);
    e.doDefault();
});

, так что оно будет запускать событие нормально?

Ответы [ 3 ]

9 голосов
/ 05 марта 2012

Вы можете запретить только поведение по умолчанию (с e.preventDefault()).

Теперь, если вы ожидаете, что ссылка будет перемещаться после завершения метода .fadeOut () , вам следуетпредотвратить поведение по умолчанию и использовать параметр обратного вызова метода fadeOut для навигации по окончании анимации:

$("#dl").live("click", function(e){
    e.preventDefault();
    var href = this.href;
    $("#dlbox").fadeOut(500, function() {
        window.location = href;
    });
});

DEMO

2 голосов
/ 05 марта 2012

Команды doDefault () не существует, вам необходимо изменить архитектуру вашего кода.

Я бы запретил использование по умолчанию, а затем выполнил бы ссылку непосредственно через window.location.Возможно, используйте другой тег для тега привязки - переопределяя его функциональность, нет смысла использовать его в первую очередь.

например, что-то вроде этого:

$("#dl").live("click", function(e){
    e.preventDefault();
    $("#dlbox").fadeOut(500, function() { window.location='www.fish.com'; });
});
0 голосов
/ 05 марта 2012

Может быть этот пост может вам помочь?Вы также можете просто вернуть false, чтобы ссылка не переходила в местоположение в href.

Добро пожаловать на сайт PullRequest, где вы можете задавать вопросы и получать ответы от других членов сообщества.
...