У меня есть следующий код, который просто использует диалоговое окно jquery ui modal для «подтверждения» любого щелчка по ссылке. Если они нажмут OK, он отправит их в исходную ссылку. Он отлично работает, так что не беспокоить читать его слишком подробно =)jQuery - объединение «confirm» и «someOtherAction»
$('.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), и в то же время сделать один зависимым от вывода другого?
Надеюсь, это ясно, чего я пытаюсь достичь.
Заранее благодарим за любую помощь. Первое сообщение здесь, так что будьте хорошими =)
Ничего. Я не видел, что вы также предотвращаете дефолт в подтверждении. – baruch
Переместите функцию подтверждения на именованную функцию и добавьте функцию сброса 'var ret = true; if ($ (this) .hasClass ("confirm")) ret = confirmFunct(); if (ret)/* код сброса */' – baruch