Не срабатывает 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">↑</a> <a href="#" id="sort-desc-date">↓</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'ы для кнопок удаления. |
Подозреваю, это из-за того, что эти кнопки генерятся динамически и при обновлении слетают бинды на них. Кто-нибудь знает как с этим бороться?
|
Думаю, что решение здесь: http://javascript.ru/forum/jquery/26...ax-zapros.html
|
на будущее
прими за правило не обновлять то, что не нужно обновлять и тогда не будет проблем - твой bind умирает когда ты меняешь контент у элемента. меняй только строки в таблице, а еще лучше передавай в json данные для строк и просто меняй их в таблице для каждой ячейки (это долго, лучше сначала получив данные собрать их в строки и заменить те строки что сейчас в таблице на новые)
|
Часовой пояс GMT +3, время: 13:23. |