Проблема с оперативным подтверждением JQUERY

#jquery #confirm

#jquery #подтвердите

Вопрос:

Моя проблема связана с динамически применяемыми элементами к странице, для которой я выполняю подтверждение. Код правильно нацелен на элемент и запрашивает часть подтверждения, однако проблема в том, что если я выбираю «Да», я понятия не имею, где скрыто возвращаемое значение, оно не задано в классе, как мои мысли ниже, и не возвращает какое-либо значение.

Кто-нибудь знает, как я могу получить некоторую форму возвращаемого значения из подтверждения для элемента, который я хочу удалить?

     $('.deleteMe').live('click', function() {

        confirmFunction(this);
        if ($(this).hasClass('confirm')){ alert("yea");} else {alert("no");}
    });

    function confirmFunction(element) {
        $(element).confirm({
          msg:'Confirm Action!<br />',
          stopAfter:'ok',
          eventType:'click',
          timeout:5000,
          buttons: { ok:'Yes', cancel:'No', separator:' - '}
        });
    }
  

Ответ №1:

Насколько я понимаю примеры на странице подключаемого модуля, это должно быть примерно так:

Назначьте обработчик кликов, который должен запускаться в случае успешного подтверждения, затем назначьте плагин подтверждения.

  $('.deleteMe').live('click',function() {
    // Code here for when they click YES on the confirm box.
    // This only executes in 2 scenarios, either the item was clicked
    //   and the confirm plugin was not active, or it was active and
    //   the user selected Yes.
 });

 function updateConfirms() {
    $('.deleteMe').confirm({
      msg:'Confirm Action!<br />',
      stopAfter:'ok',
      eventType:'click',
      timeout:5000,
      buttons: { ok:'Yes', cancel:'No', separator:' - '}
    });
 }

 updateConfirms();
  

Из-за упомянутой вами динамической природы вам потребуется вызвать updateConfirms () после добавления новых элементов, которые нуждаются в подтверждениях.

РЕДАКТИРОВАТЬ: Давайте попробуем не использовать Live, а обновить обработчик кликов и подтверждение после любых дополнений:

  function updateConfirms() {
   $('.deleteMe').click(function() {
    // Code here for when they click YES on the confirm box.
    // This only executes in 2 scenarios, either the item was clicked
    //   and the confirm plugin was not active, or it was active and
    //   the user selected Yes.
   });

   $('.deleteMe').confirm({
     msg:'Confirm Action!<br />',
     stopAfter:'ok',
     eventType:'click',
     timeout:5000,
     buttons: { ok:'Yes', cancel:'No', separator:' - '}
   });
 }

 updateConfirms();
  

Комментарии:

1. Привет, я попытался сделать то, что вы сказали, к сожалению, это, похоже, не связано с методом удаления. Я добавляю вызываемые элементы, затем запускаю функцию, как вы указали, однако, похоже, что она не добавляет обработчик подтверждения в . Удалить элементы темы. Как только я нажимаю на элемент DeleteMe, он переходит прямо к вызову alert hello вместо подтверждения.

2. @John Хорошо, возможно, проблема в «активной» части. Я опубликую краткое изменение.

3. @John попробуйте второй подход, который я только что опубликовал, и дайте мне знать.

4. Кто бы ты ни был, ты легенда.