Ponieważ confirm jest funkcją blokującą (żaden javascript nie zostanie uruchomiony dopóki nie zwróci true/false), a alert nie jest blokowany (JS kontynuuje wykonywanie). Alertify nie zwraca natychmiast wartości true/false, ale zamiast tego prawdopodobnie natychmiast zwraca undefined, a następnie wywołuje funkcję zwrotną później, gdy użytkownik kliknie przycisk OK lub Anuluj. Zwracana wartość z tej funkcji wywołania zwrotnego nie ma wpływu w twoim przykładzie, ponieważ kod onclick został już zakończony (ponieważ nie jest blokowany).
Zakładając, że używasz tego: https://github.com/fabien-d/alertify.js/
Jak to faktycznie działa z funkcji wywołania zwrotnego, a nie wartość zwracana:
alertify.confirm(message, function (e) {
if (e) {
//after clicking OK
} else {
//after clicking Cancel
}
});
Dla próbki kodu, możesz spróbować czegoś takiego:
function performDelete (a_element) {
// perform your delete here
// a_element is the <a> tag that was clicked
}
function confirmAction (a_element, message, action) {
alertify.confirm(message, function(e) {
if (e) {
// a_element is the <a> tag that was clicked
if (action) {
action(a_element);
}
}
});
}
<a href="#" onclick="confirmAction(this, 'Are you sure you wish to remove this?', performDelete); return false;">Delete</a>
EDYCJA: zaktualizowano jako ogólne okno potwierdzenia, które wywołuje funkcję zwrotną, jeśli użytkownik kliknie przycisk OK.
To jest problem. Nie chcę tworzyć nowej funkcji za każdym razem, gdy ją nazywam. Chciałem mieć ogólną funkcję do wyświetlenia i powrotu. Dzięki. – jfreak53
Czy chcesz, aby link prowadził do jego href, jeśli użytkownik kliknie przycisk OK? lub jest jakiś javascript, który wykonuje akcję, jeśli użytkownik kliknie OK? Zobacz moją zaktualizowaną odpowiedź. – Levi
Nie, ale to, co napisałeś powyżej, mogę zmienić teraz, aby zrobić to, co potrzebne :) dziękuję. – jfreak53