#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. Кто бы ты ни был, ты легенда.