kop
Постоялец
- Регистрация
- 8 Янв 2008
- Сообщения
- 133
- Реакции
- 28
- Автор темы
- #1
Гуру JQuery помогите, уже час сижу над простой проблемой и не могу понять, что не так.
Пишу скрипт для AJAX-удаления строк таблицы со страницы и в БД. В файле вида вызывается функция deleteItem(id, type) (id - идентификатор элемента, type - тип элемента, этот параметр нас не интересует).
Функция deleteItem(
Создаем экземпляр диалога -> Открываем диалог -> Если нажата кнопка "Да", вызываем функцию deleteFunc()
Функция deleteFunc()
Теперь о проблеме. Код работает, но только один раз. После загрузки страницы, я могу удалить только один элемент, а попытки удалить другой элемент результата не дают.
С помощью точек остановки, выяснил - все беда в этом участке кода:
Во время первого выполнения функции - все ок, но во время следующих, переменная ID волшебным образом принимает свое предыдущее значение. Например, предположим, что первый раз функция сработала с ID=4, а теперь выполняется с ID=36:
Может кто знает в чем проблема?
Пишу скрипт для AJAX-удаления строк таблицы со страницы и в БД. В файле вида вызывается функция deleteItem(id, type) (id - идентификатор элемента, type - тип элемента, этот параметр нас не интересует).
Функция deleteItem(
PHP:
function deleteItem(id, type)
{
$("#sure").dialog({
autoOpen: false,
bgiframe: true,
resizable: true,
width: 600,
modal: true,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
'Нет': function() {
$(this).dialog('close');
},
'Да': function() {
$(this).dialog('close');
deleteFunc(id, type);
}
}
});
$('#sure').dialog('open');
}
Функция deleteFunc()
PHP:
function deleteFunc(id, type)
{
if (type == 'operator')
{
$.post(baseUrl+"/operators/remove",
{
id: id,
},function(data){}, "json");
$('tr' + '#' + 'item' + id).remove();
};
}
С помощью точек остановки, выяснил - все беда в этом участке кода:
PHP:
'Да': function() {
$(this).dialog('close');
deleteFunc(id, type);
}
PHP:
function deleteItem(id, type) // здесь ID=36, как и нужно
{
$("#sure").dialog({
autoOpen: false,
bgiframe: true,
resizable: true,
width: 600,
modal: true,
overlay: {
backgroundColor: '#000',
opacity: 0.5
},
buttons: {
'Нет': function() {
$(this).dialog('close');
},
'Да': function() {
$(this).dialog('close');
deleteFunc(id, type); // здесь ID=4, старое значение
}
}
});
$('#sure').dialog('open');
}