Ich möchte ein JQuery-Dialogfeld unter Vorbehalt des Klickereignisses eines Hyperlinks anzeigen.
Ich habe eine Anforderung wie unter Bedingung1: Öffnen Sie einen JQuery-Dialog. Wenn Bedingung1 nicht erfüllt ist, navigieren Sie zu der Seite, auf die durch das 'href'-Tag verwiesen wird, dessen Klickereignis in Frage kommt.
Ich kann eine Funktion für das Klickereignis des Links aufrufen. Diese Funktion überprüft nun diesen Zustand, indem sie eine andere URL ausführt (die meinen Spring-Controller ausführt und eine Antwort zurückgibt).
Alles funktioniert perfekt, wenn nur window.open vom Popup-Blocker blockiert wird.
$('a[href*=/viewpage?number]').live('click', function(e) {
e.preventDefault();
redirectionURL = this.href;
pageId= getUrlVars(redirectionURL)["number"];
$.getJSON("redirect/" + pageId, {}, function(status) {
if (status == null) {
alert("Error in verifying the status.");
} else if(!status) {
$("#agreement").dialog("open");
} else {
window.open(redirectionURL);
}
});
});
Wenn ich e.preventDefault();
aus dem Code entferne , blockiert der Popoup-Blocker die Seite nicht, öffnet jedoch für Bedingung1 den Dialog sowie die Seite 'href'.
Wenn ich eines löse, entsteht ein Problem für ein anderes. Ich kann nicht beiden Bedingungen gleichzeitig gerecht werden.
Könnten Sie mir bitte helfen, dieses Problem zu lösen?
Sobald dies gelöst ist, muss ich ein weiteres Problem lösen, nämlich die Navigation im OK-Ereignis des Dialogs :)