2012-09-06 3 views
2

Possible en double:
Jquery if conditions false then prevent defaultNe pas exécuter href jquery

Je possède ce code, il fonctionne bien, mais je veux que ce soit dynamique. Je souhaite exécuter le fondu en premier avant de le diriger à l'aide de la fonction href.

Ce que je veux est ce premier

$(".nav a").click(function() {  
    var getid = $(this).attr('id'); 
    $("#background-wrapper").fadeOut("slow"); 
    $("#page_box").fadeOut("slow"); 
    $("header").fadeOut("slow"); 
    $("footer").fadeOut("slow"); 
}); 

puis déclencher cette après

.nav a = href = "link" 

Répondre

3

Vous devez utiliser event.preventDefault() d'abord pour arrêter le comportement de lien, puis rediriger manuellement l'utilisateur. Essayez ceci:

$(".nav a").click(function (e) {  
    e.preventDefault(); 

    var getid = $(this).attr('id'); 
    $("#background-wrapper").fadeOut("slow"); 
    $("#page_box").fadeOut("slow");   
    $("header").fadeOut("slow"); 
    $("footer").fadeOut("slow", function() { 
     location.assign = getid + ".php"; 
    }); 
}); 
1

Essayez ceci:

$(".nav a").click(function (e) {  

    e.preventDefault(); /* If this method is called, the default action of the event will not be triggered. e.g clicked anchors will not take the browser to a new URL */ 

    var pageUrl = this.id + ".php"; 

    $("#background-wrapper").fadeOut("slow"); 
    $("#page_box").fadeOut("slow"); 
    $("header").fadeOut("slow"); 
    $("footer").fadeOut("slow", function() { 
     window.location.replace(pageUrl); 
    }); 

}); 
0

pour cette solution:

$(".nav a").click(function (e) { 
    e.preventDefault(); 
    var $ele = $(this); 
    $("#background-wrapper, #page_box, header, footer").fadeOut("slow", function() { 
     window.location = $ele.attr('id')+".php"; 
    }); 
}); 
+0

Merci! Celui-ci travaille avec moi. J'ai juste enlevé le .php à la fin puisque je veux qu'il ait aussi une URL externe. Merci encore :) – EatCodePlaySleep

+0

super truc! n'oublie pas d'accepter ta réponse! –

0

Peut-être que cela devrait fonctionner pour vous?

$(".nav a").click(function (e) {  
    e.preventDefault(); 
    var pageUri = $(this).attr('id') + '.php'; 
    $("#background-wrapper, #page_box, header, footer").fadeOut('slow', function() { 
     window.replace(pageUri) 
    }); 
}