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');
 }
	
				