مسج/جافا سكريبت تأكيد الخروج مرتين
-
05-07-2019 - |
سؤال
لسبب غريب أنا أحصل على تأكيد مربع الخروج مرتين.هنا هو بلدي رمز:
$(".DeleteComment").live("click", function(){
var CommentID = $(this).attr("rel");
var confirm
if (!confirm('Are you sure you want to permanently delete this comment?')){
return false;
}else{
$(this).html("loading").css("color", "#999");
//AJAX HERE
return false;
}
});
المحلول
هل تحميل أي محتوى حيوي (عبر اياكس)؟ ويمكن أن يكون عليه الحال أن الحدث انقر فوق لا بد أن نفس العنصر الناجمة مرتين في تأكيد مزدوجة.
نصائح أخرى
وحاول هذا:
$_blockDelete = false;
$(".DeleteComment").live("click", function(event){
event.preventDefault();
//event.stopPropagation(); // it is not necessary
if (!$_blockDelete)
{
$_blockDelete =true;
var rconfirm = confirm('Are you sure you want to permanently delete this comment?');
if (rconfirm)
{
$(this).html("loading").css("color", "#999");
var CommentID = $(this).attr("rel");
//AJAX HERE
//return the value "false" the variable "$_blockDelete" once again ajax response
}
}
});
يحدث ذلك عندما ربط الحدث على العناصر التي تحميلها بشكل حيوي عن طريق AJAX
لذلك على سبيل المثال نحن التحميل ديناميكية محتوى html (مثلالمحتوى الديناميكي في مشروط) على فوق edit
شكل زر ،
وفي هذا المحتوى إذا كان لدينا binded انقر فوق الحدث على بعض زر على سبيل المثال delete
زر, ثم في كل مرة نضغط على edit
شكل زر ، فإنه يلزم على click
الحدث delete
الزر في كل مرة ،
و إذا كان لديك مجموعة تأكيد مربع على الحدث click delete
زر ثم ، سوف يطلب منك الكثير من الوقت كما كان binded لهذا الحدث click يعني هنا إذا كان لدينا النقر edit
شكل زر 5 مرات وبعد ذلك سوف يطلب تأكيد 5 مرات.
وذلك من أجل حل هذه المسألة يمكنك unbind
الحدث في كل مرة قبل ملزم الحدث إلى تحميلها بشكل حيوي عنصر على النحو التالي :
$(document).off('click', '.DeleteComment').on('click', '.DeleteComment', function () {
if (confirm('Are you sure you want to permanently delete this comment?')){
//Delete process
return true;
}
return false;
}
أو طريقة أخرى لحل هذه المشكلة هو إضافة البرنامج النصي الخاص بك في الصفحة الرئيسية, يعني صفحة ثابتة في تحميلها بشكل حيوي واحد.
هل حاول إزالة تلك المستخدمة يست var confirm
؟