Kann Click() zum Emulieren der Linknavigation verwendet werden?
Bei der Arbeit mit JavaScript-Timern verwenden viele Entwickler die click()-Funktion von jQuery, um Emulieren Sie das Klicken auf einen Link und navigieren Sie nach einem festgelegten Zeitintervall zu einer anderen Seite. Obwohl die click()-Methode wie vorgesehen funktioniert, wurde ein unerwartetes Verhalten beobachtet, das Fragen zu ihrer Funktionalität aufwirft.
Browserverhalten
Wenn ein Event-Handler t einem -Link mit bind() oder click() zugewiesen wurde, scheint der Aufruf von click() keine Auswirkung zu haben. Der Browser folgt dem Link nicht und lädt die Zielseite nicht.
Wenn jedoch zuerst ein Event-Handler eingerichtet wird, funktioniert click() wie erwartet, auch wenn der Handler keinen Code enthält.
$('a').click(function(){return true;}).click();
In diesem Fall wird die neue Seite so geladen, als ob der Benutzer manuell auf den Link geklickt hätte.
Erklärung
Anfangs war das beobachtete Verhalten Es wird angenommen, dass es mit einem Problem im Code oder Setup zusammenhängt. Weitere Tests ergaben jedoch, dass dies nicht der Fall war.
Die Funktion click() von jQuery dient dazu, ein Klickereignis für das Zielelement auszulösen. Wenn für das Element kein Event-Handler definiert wurde, löst click() einfach den Standard-Browser-Handler aus, der die Linknavigation initiiert.
Alternative Lösungen
Wenn click() Verhalten nicht geeignet ist, stehen alternative Optionen zur Verfügung:
Verwendung der trigger()-Methode von jQuery:
$('a').trigger('click');
Verwendung von Vanilla-JavaScript:
document.getElementById("a_link").click()
Window.location direkt ändern:
window.location = "new_page.html";
Das obige ist der detaillierte Inhalt vonKann Click() für die simulierte Linknavigation verwendet werden?. Für weitere Informationen folgen Sie bitte anderen verwandten Artikeln auf der PHP chinesischen Website!