Доброго времени суток. У меня возникла серьёзная проблема.
Я написал упрощённый вариант скрипта, где срабатывает та же гадость что и в основном.
Пару слов. Есть кнопка "удалить". Нажимая на которую мы получаем интерфейс где подтверждаем или отменяем. Тут даже без разницы на которую жать. Сама суть вот в чём.
Нажимаем на "Удалить", получаем кнопки. Жмём на "Нет" и получаем сообщение "Отменили". Интерфейс скрывается. Отлично. Теперь опять нажмём на "Удалить" и потом опять на "Нет" и к нашему удивлению сообщение "Отменили" выводится 2 раза друг за другом. Теперь давайте обновим страничку и нажмём на "Удалить" 3 раза. А потом на "Да" (или же на "Нет") и получим 3 сообщения друг за другом.
<html>
<head>
<title>Удаление</title>
<script type="text/javascript" src="http://ajax.googleapis.com/ajax/libs/jquery/1.7.1/jquery.min.js"></script>
<script>
$(document).ready(function(){
$('.cpanel').append('<input type="button" name="delete" value="Удалить" />');
$('.cpanel').append('<div class="fDelete" style="display: none;" />');
$('.fDelete').append('Вы уверенны, что хотите удалить выбранную категорию?<br />' +
'<input type="button" name="yes" value="Да" />' +
'<input type="button" name="no" value="Нет" />');
$(':button[name=delete]').live('click', function(){
Delete();
});
function Delete() {
var checkOn = $(':checkbox[name=c]:checked').length;
if(checkOn != 0) {
$('.fDelete').slideDown(200);
$(':button[name=yes]').live('click', function(){
$('.fDelete').slideUp(200, function(){
alert('Удалили');
});
});
$(':button[name=no]').live('click', function(){
$('.fDelete').slideUp(200, function(){
alert('Отменили');
});
});
} else {
alert('Сперва выберите категории для удаления.');
}
}
});
</script>
</head>
<body>
<div class="cpanel"></div>
<div class="c"><input type="checkbox" name="c" value="c1" />Категория 1</div>
<div class="c"><input type="checkbox" name="c" value="c2" />Категория 2</div>
<div class="c"><input type="checkbox" name="c" value="c3" />Категория 3</div>
<div class="c"><input type="checkbox" name="c" value="c4" />Категория 4</div>
</body>
</html>