JQUERY LIVE Подтвердить выпуск - PullRequest
0 голосов
/ 08 июня 2011

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

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

    $('.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 Ответ

1 голос
/ 08 июня 2011

Исходя из моего понимания примеров на странице плагина, это должно быть так:

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

 $('.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();
...