Вопрос

У меня есть следующий код, который просто использует модальный диалог jQuery UI, чтобы «Подтвердить» любой клик на ссылку. Если они нажимают OK, то он отправляет их на исходную ссылку. Работает нормально, поэтому не прочитайте его слишком много деталей =)

    $('.confirm').live('click', function(e) {
  e.preventDefault();
  var theHref = $(this).attr('href');
  var confirmText = 'Are you sure?';
  if ($(this).attr('confirm')) {
   confirmText = $(this).attr('confirm');
  }
  confirmDialog.html(confirmText);
  confirmDialog.dialog({
   buttons: {
    'OK': function() {
     window.location = theHref;
     $(this).dialog('close');
    },
    Cancel: function() {
     $(this).dialog('close');
     return false;
    }
   }
  });
  confirmDialog.dialog('open');
  return false;
 });

Затем у меня есть куча других произвольных функций. Как, скажи это:

    $('a.reset').live('click', function(e) {
  e.preventDefault();
  $(this).parents('form')[0].reset();
 });

Это просто ссылка, которая сбрасывает форму (например, входной тип = сброс). Эта функциональность также работает нормально. Обратите внимание, что это просто произвольный пример. У меня много разных фрагментов функциональности JS, которые я прилагаю через классы.

Проблема, которую я сталкиваюсь, укладка этих двух. В этом примере некоторые ссылки сброса, которые я мог бы захотеть подтверждения, некоторые я не могу. Вот так:

<a href="" class="reset confirm">Reset on confirmation</a>
<a href="" class="reset">Reset without confirmation</a>

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

Я надеюсь, что понятно, что я пытаюсь достичь.

Спасибо заранее за любую помощь. Первый раз публикую здесь так будет хорошо =)

Это было полезно?

Решение

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

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

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

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

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