Chcę wyświetlać okno dialogowe JQuery warunkowo po kliknięciu hiperłącza.
Mam wymaganie takie jak warunek1, aby otworzyć okno dialogowe JQuery, a jeśli warunek1 nie jest spełniony, przejdź do strony, do której odwołuje się tag „href”, którego zdarzenie kliknięcia dotyczy.
Jestem w stanie wywołać funkcję w przypadku kliknięcia linku. Ta funkcja sprawdza teraz wspomniany stan, wykonując inny adres URL (który wykonuje mój kontroler Spring i zwraca odpowiedź).
Wszystko działa idealnie, tylko window.open jest blokowane przez blokowanie wyskakujących okienek.
$('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);
}
});
});
Jeśli e.preventDefault();
usunę z kodu, bloker popoup nie blokuje strony, jednak dla warunku1 otwiera okno dialogowe, a także otwiera stronę „href”.
Jeśli rozwiążę jedno, stwarza to problem dla innego. Nie jestem w stanie oddać sprawiedliwości obu warunkom jednocześnie.
Czy możesz mi pomóc rozwiązać ten problem?
Kiedy to zostanie rozwiązane, mam inny problem do rozwiązania, np. Nawigację po zdarzeniu OK dialogu :)