Suspend Default Event in jQuery

8

Ich versuche, das Standardereignis oder die Ereignisse in einem jQuery-Skript zu verzögern. Der Kontext besteht darin, dass ich Benutzern eine Meldung anzeigen möchte, wenn sie bestimmte Aktionen ausführen (in erster Linie klicken), bevor die Standardaktion ausgelöst wird.

Pseudocode: - Benutzer klickt auf Link / Button / Element - Der Benutzer erhält eine Popup-Meldung mit dem Hinweis "Sie verlassen die Seite" - Nachricht bleibt für X Millisekunden auf dem Bildschirm - Standardaktion (kann auch anders als href sein) löst

aus

Bisher sehen meine Versuche so aus:

%Vor%

Natürlich funktioniert das nicht wie erwartet, aber es kann zeigen, was ich versuche zu tun.

Ich kann keine Plugins verwenden, da es sich um eine gehostete Umgebung ohne Online-Zugriff handelt.

Irgendwelche Ideen?

    
Bjørn Furuknap 06.08.2009, 12:11
quelle

4 Antworten

5

Ich würde wahrscheinlich so etwas tun.

%Vor%

Ich bin mir nicht sicher, ob url von innerhalb der zeitgesteuerten Funktion gesehen werden kann. Wenn nicht, müssen Sie es möglicherweise außerhalb des Click-Handlers deklarieren.

Bearbeiten: Wenn Sie das Ereignis über die zeitgesteuerte Funktion auslösen möchten, könnten Sie etwas verwenden, was dem von karim79 vorgeschlagenen ähnlich ist, obwohl ich ein paar Änderungen vornehmen würde.

%Vor%

Bearbeiten: Nach einigen Tests und Nachforschungen bin ich mir nicht sicher, ob es tatsächlich möglich ist, das ursprüngliche Klickereignis eines <a> -Elements auszulösen. Es scheint für jedes Element anders als <a> möglich zu sein.

    
DLH 06.08.2009 12:34
quelle
2

So etwas sollte den Trick machen. Fügen Sie eine neue Klasse (vermutlich mit einem sinnvolleren Namen als der von mir gewählten) zu allen Links hinzu, die Sie beeinflussen möchten. Entfernen Sie diese Klasse, wenn Sie Ihr Popup angezeigt haben. Wenn Sie also erneut .click () aufrufen, wird Ihr Code nicht mehr ausgeführt und das Standardverhalten wird angezeigt.

%Vor%     
VoteyDisciple 10.08.2009 21:20
quelle
2

Wahrscheinlich ist der beste Weg, dies zu tun, um zu lösen. Etwas wie:

%Vor%     
scruffian 13.10.2010 17:58
quelle
-2

Dies könnte funktionieren:

%Vor%

Hinweis: vollständig ungetestet

    
Jim Neath 06.08.2009 12:23
quelle

Tags und Links