Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 12.01.2009, 12:02
Новичок на форуме
Отправить личное сообщение для dijah Посмотреть профиль Найти все сообщения от dijah
 
Регистрация: 12.01.2009
Сообщений: 2

Не срабатывает bind(и click) после load (или get)
Есть таблица:
<table id="table-tasks"> 
<thead> 
<tr> 
    <th style="width:60px;">Время
    <th>Описание
    <th style='width:20px'>Удалить
</tr> 
<tr> 
    <th><a href="#" id="sort-asc-date">&uarr;</a> <a href="#" id="sort-desc-date">&darr;</a> 
    <th>
    <th>
</tr> 
</thead> 
<tbody id="table-tasks-rows"> 
		<tr id="56db2622b68eb24bb9e811c8819d6bf0"> 
			<td>02.12.2008 21:45:46
            <td>Описание 1
            <td><a name='56db2622b68eb24bb9e811c8819d6bf0' class='delete_task_btn' title='Удалить задачу'>×</a>
        </tr> 
		<tr id="56db2622b68eb24aa9e811c8819d6bf1"> 
			<td>03.12.2008 11:47:32
            <td>Описание 2
            <td><a name='56db2622b68eb24aa9e811c8819d6bf1' class='delete_task_btn' title='Удалить задачу'>×</a>
        </tr> 
</tbody> 
</table>


JS-код:
$(function(){
        $('#sort-asc-date').bind("click",function(){$.get("ajax.php", {a:"sort", p:"asc-date"},function(data){$('#table-tasks-rows').html(data);});});
	$('#sort-desc-date').bind("click",function(){$.get("ajax.php", {a:"sort", p:"desc-date"},function(data){$('#table-tasks-rows').html(data);});});
        
        $('.delete_task_btn').bind("click",function(){
			$('#'+this.name).animate({ opacity: 'hide' }, "slow");
			$.get('ajax.php?a=del&p='+this.name);
        });
	}
);

При нажатии на стрелки (в заголовке таблицы, id "sort-asc-date" и "sort-desc-date") записи сортируются по дате в нужном порядке, но после сортировки перестают работать кнопки удаления записей (класс "delete_task_btn"). Хотя при загрузке страницы они нормально работают.
П.С. Пробовал заменить функции на load и click — одна фигня, после запроса на сервер как-будто слетают event'ы для кнопок удаления.
Ответить с цитированием
  #2 (permalink)  
Старый 12.01.2009, 14:37
Новичок на форуме
Отправить личное сообщение для dijah Посмотреть профиль Найти все сообщения от dijah
 
Регистрация: 12.01.2009
Сообщений: 2

Подозреваю, это из-за того, что эти кнопки генерятся динамически и при обновлении слетают бинды на них. Кто-нибудь знает как с этим бороться?
Ответить с цитированием
  #3 (permalink)  
Старый 26.01.2009, 17:48
Аватар для Gennady
Новичок на форуме
Отправить личное сообщение для Gennady Посмотреть профиль Найти все сообщения от Gennady
 
Регистрация: 26.01.2009
Сообщений: 8

Думаю, что решение здесь: Проблема с обработкой селектов html кода, пришедшего через ajax запрос
Ответить с цитированием
  #4 (permalink)  
Старый 27.01.2009, 20:05
Друг
 
Сообщений: n/a

на будущее
прими за правило не обновлять то, что не нужно обновлять и тогда не будет проблем - твой bind умирает когда ты меняешь контент у элемента. меняй только строки в таблице, а еще лучше передавай в json данные для строк и просто меняй их в таблице для каждой ячейки (это долго, лучше сначала получив данные собрать их в строки и заменить те строки что сейчас в таблице на новые)
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск