Я попытался написать неаккуратный код jQuery для встроенного подтверждения «диалога». Он работает просто отлично, за исключением того, что delay()
запускается только один раз для каждого его #row_ID
. Задержка предназначена для затухания «диалога», если пользователь не взаимодействует с ним в течение определенного промежутка времени. Ссылка «Отмена» прекрасно работает каждый раз.
Есть идеи, что я делаю не так?
Вот JS:
$("a.i_delete").click(function() {
var parent = $(this).attr("id");
var parentRow = "#row_" + parent;
var inlineConfirm = $('<div id="confirm_' + parent + '" class="inline_c"><a href="#cancel" class="ic_cancel">Cancel, I want to keep it</a><a href="/?id=' + parent + '" class="ic_confirm">Delete</a></div>').hide().fadeIn(500);
$(parentRow).append(inlineConfirm).delay(3500).queue(function() {
$("#confirm_" + parent).fadeOut(2000,function() {
$("#confirm_" + parent).remove();
});
});
$("a.ic_cancel").click(function() {
$("#confirm_" + parent).fadeOut(500,function() {
$("#confirm_" + parent).remove();
});
return false;
});
return false;
});
А вот HTML:
<div id="row_XXX" class="l_row">
Bla bla bla <a href="/?id=XXX" id="XXX" class="i_delete" title="Delete link">Delete</a>
</div>