setTimeout mit Fenster.Lage und $(this)
ich bin relativ neu hier und Frage mich, wenn jemand könnte mich in die richtige Richtung! Ich bin auf der Suche zu animieren, einige Aspekte der Seite laden, wenn im Menü links angeklickt werden.
$("document").ready( function() {
$('.page_box_fade').css("display", "none")
.fadeIn('300');
$(".nav_image").click( function(){
$('.page_box_fade').fadeOut('300');
document.location = $(this).parent().attr("href");
return false;
});
});
Dieser code scheint zu funktionieren(ish), wenn ich auf das Bild".nav_image", die enthielt innerhalb ein link, es blendet den Inhalt von div '.page_box_fade' und gleichzeitig leitet Sie an das 'href' - Attribut des angeklickten .nav_image übergeordneten link. Da ist ein 300ms verblassen, möchte ich das Skript, um diese aufzunehmen, bevor es umleitet, um die fade-tatsächlich für den Benutzer sichtbar.
$("document").ready( function() {
$(".nav_image").click( function(){
$('.page_box_fade').fadeOut('300');
setTimeout( "document.location = $(this).parent().attr('href')", 500 );
return false;
});
});
Ich nehme an, setTimeout, wäre die Antwort aber $(this).parent().attr('href') ist undefiniert, wenn verwendet, die Art, wie ich dachte.
Dies ist die Struktur meiner html ein einfaches link:
<a href="?id=0">
<img class="nav_image" src="images/home.png" alt="home" />
</a>
Jede Hilfe auf diesem würde sehr geschätzt 🙂
Du musst angemeldet sein, um einen Kommentar abzugeben.
Können Sie einfach speichern Sie die
href
vor, wie dieser:Diese macht ein paar änderungen:
"document"
ist nicht richtig für einen Selektor verwenden$(document).ready()
oder die Verknüpfung oben.setTimeout()
verwenden Sie eine Funktion direkt wie oben.this
innerhalb dersetTimeout()
- Funktion, wenn Sie die Einstellung Rahmen, sonstthis
wirdwindow
, nicht Ihreclicked
link (der ist letztlich in Ihrer aktuellen Ausgabe).Alternative ist, einfach umleiten, wenn Sie face-out (es wird umleiten in 300ms aber nicht 500ms), so:
Müssen Sie die callback-argument von fadeOut, die aufgerufen wird, wenn die animation abgeschlossen ist:
this
beziehen sich auf das falsche element in diesem Fall, ist es das.page_box_fade
das ist fading, nicht die.nav_image
auf die Sie geklickt haben.