Вопрос

По какой-то странной причине я получаю свой блок подтверждения, появляющийся дважды. вот мой код:

$(".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;
    }


});
Это было полезно?

Решение

Загружаете ли вы какой-либо контент динамически (через ajax)? Это может быть случай, когда событие click привязывается к одному и тому же элементу дважды, что приводит к двойному подтверждению.

Другие советы

попробуйте это

попробуйте это

<*>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 ,

И в этом контенте, если у нас есть связанное событие нажатия кнопки на какой-либо кнопке , например. Кнопка delete , затем каждый раз, когда мы нажимаем кнопку формы edit , связывает событие click с delete кнопка каждый раз,

И если вы установили флажок подтверждения для события нажатия кнопки delete , тогда будет запрашивать у вас столько раз, сколько он был связан для этого события нажатия , значит здесь, если мы нажали кнопку формы edit 5 раз, после чего она запросит ваше подтверждение 5 раз.

Таким образом, для решения этой проблемы вы можете отменить привязку к событию каждый раз перед привязкой события к динамически загружаемому элементу следующим образом:

$(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 Подтвердить ?

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top