Das hashchange-Ereignis von jQuery funktioniert nicht, wenn ich eine Seite mit Hash direkt öffne

7

Ich habe ein Skript-Tag am Ende einer HTML-Seite platziert:

$(window).on ('hashchange', function (e) { alert (location.hash); });

Es funktioniert, wenn ich auf Schaltflächen mit hrefs wie #a klicke, aber wenn ich Links wie localhost/aaa#a öffne, wird die Alert-Funktion nicht ausgelöst.

Es sieht also so aus, als müsste ich das Vorhandensein eines Hashes erkennen, wenn das Dokument fertig ist. Aber das sah falsch aus.

Gibt es eine Möglichkeit, es in beiden Situationen funktionieren zu lassen?

    
daisy 18.12.2013, 07:27
quelle

1 Antwort

23

Sie müssen das Ereignis beim Laden der Seite manuell auslösen. Das Ereignis wird nur ausgelöst, wenn der Benutzer eine direkte Aktion ausführt. Da beim Laden der Seite keine Aktion des Benutzers erfolgt, wird das Ereignis on hashchange nicht ausgelöst.

%Vor%

Wenn Sie das Ereignis nur auslösen möchten, wenn ein Hashwert vorhanden ist,

%Vor%     
Arun P Johny 18.12.2013, 07:31
quelle

Tags und Links