Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Отмена события preventDefault() , поясните пожалуйста (https://javascript.ru/forum/jquery/8829-otmena-sobytiya-preventdefault-poyasnite-pozhalujjsta.html)

namez 15.04.2010 10:34

Отмена события preventDefault() , поясните пожалуйста
 
Здравствуйте! Поясните пожалуйста нубу.

Есть такой код:

$("#header .menu ul li a, #header table td a").click(function(e){
    e.preventDefault();
    $(this).animate({"opacity":0.3}, "fast").animate({"opacity":1}, "fast");
    ;}
    );


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

В моем случае перехода не случается - только эффект 8(
Спасибо заранее.

micscr 15.04.2010 11:09

$(this).animate({"opacity":0.3}, "fast").animate({"opacity":1}, "fast", function(){document.location = $(this).attr('href');});

namez 15.04.2010 14:10

micscr спасибо большое, document.location вот оно.

У меня небольшие изменения в коде, жирным выделил. Тут анимация происходит не с "а", а с вложенным span'ом c классом .back.
Так вот в таком случае как правильно записать тк сейчас атрибут к ссылке не добавляется те ссылки не работают после клика.

$("#header .menu ul li a, #header table td a").click(function(e){
    e.preventDefault();
    [B]$(this).find(".back")[/B].animate({"opacity":0.3}, "fast").animate({"opacity":1}, "fast", function(){document.location = $(this).attr('href');});
    }
    );

micscr 15.04.2010 14:54

Судя по вашему вопросу вы совсем плохо разбираетесь в теме :( .
Создайте переменную(замыкание) на ссылку и ее используйте.

Ну и представлю вариант на Шнобелевскую премию :) :
document.location = $(this).closest('a').attr('href');


Часовой пояс GMT +3, время: 18:03.