क्योंकि पुष्टि एक अवरोधक फ़ंक्शन है (कोई जावास्क्रिप्ट तब तक चलने तक नहीं होगा जब तक यह सत्य/गलत न हो), और अलर्ट अवरोधन (जेएस निष्पादित करता है)। अलर्टिफ़ तुरंत एक सच्चा/झूठा नहीं लौटाता है, लेकिन इसके बजाय, यह शायद तुरंत अपरिभाषित हो जाता है, फिर उपयोगकर्ता ठीक या रद्द होने के बाद बाद में कॉलबैक फ़ंक्शन को कॉल करता है। उस कॉलबैक फ़ंक्शन से वापसी मान आपके उदाहरण में कोई प्रभाव नहीं डालता है, क्योंकि ऑनक्लिक कोड पहले से ही समाप्त हो चुका है (क्योंकि यह गैर-अवरुद्ध है)।
आप यह मानते हुए उपयोग कर रहे हैं: https://github.com/fabien-d/alertify.js/
यह कैसे यह वास्तव में एक कॉलबैक फ़ंक्शन के साथ काम करता है, नहीं एक वापसी मूल्य:
alertify.confirm(message, function (e) {
if (e) {
//after clicking OK
} else {
//after clicking Cancel
}
});
अपने कोड नमूने के लिए, आप कुछ इस तरह की कोशिश कर सकते:
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>
संपादित करें: एक सामान्य पुष्टि संवाद होने के लिए अपडेट किया गया है जो उपयोगकर्ता कॉल ठीक होने पर कॉलबैक फ़ंक्शन को कॉल करता है।
यह समस्या है। मैं इसे हर बार कॉल करने के लिए एक नया समारोह नहीं बनाना चाहता हूं। मैं प्रदर्शित करने और वापस करने के लिए एक सामान्य समारोह चाहता था। धन्यवाद। – jfreak53
क्या आपका मतलब है कि, यदि उपयोगकर्ता ठीक क्लिक करता है तो आप लिंक को इसके href पर नेविगेट करना चाहते हैं? या क्या कोई जावास्क्रिप्ट है जो उपयोगकर्ता को ठीक क्लिक करता है तो कार्रवाई करता है? मेरा अद्यतन उत्तर देखें। – Levi
नहीं, लेकिन जो आपने ऊपर पोस्ट किया है, मैं अब जो कुछ चाहता हूं उसे करने के लिए ट्विक कर सकता हूं :) धन्यवाद। – jfreak53