Версия для печати темы
Нажмите сюда для просмотра этой темы в оригинальном формате
Форум программистов > JavaScript: Применение библиотек > jQuery как удалить строчку в таблие


Автор: DeamonShan 27.8.2010, 13:53
Привет всем,

Скажите плиз, как удалить строчку из таблицы по клику, если таблица создана динамически?

Например делаю так:

Код


function create_table(){
    var obj=$("<div/>").attr("id","new_layer");
    obj.appendTo("body");
    obj.html("<teble class='.table_layer'></table>");
    loaddata_layer();
}

function loaddata_layer(){

   //здесь подгружаю строки таблицы
   $(".table_layer").append(rows);

}



подгружаемые строки стандартные:

Код

<tr><td id='2' onclick='clickRow()'>Content of row</td></tr>


и нужно чтобы при клике по этим строкам она выводила алерт:

Код

function clickRow(){
   $(".table_layer td").click(function(){
       alert($(this).attr('id');
   });
}


после клика на строку алертов показывает столько, сколько строк подгрузилось. А мне нужно чтобы один раз... 

Автор: ksnk 27.8.2010, 14:07
Код

<tr><td id='2' onclick='clickRow(this)'>Content of row</td></tr>


Код

function clickRow(el){
       alert(el.id);
}

Автор: DeamonShan 27.8.2010, 14:14
ksnk, 
первый раз работает, дальше закрываю алерт, и пытюсь кликнуть еще раз, далее при повторном клике старая песня(((

Автор: ksnk 27.8.2010, 14:23
Цитата(DeamonShan @  27.8.2010,  14:14 Найти цитируемый пост)
 далее при повторном клике старая песня((( 

Старую песню тоже надо переписать  smile 

Вот эта конструкция 
Код

   $(".table_layer td").click(function(){
       alert($(this).attr('id'));
   });

выставляет на всех TD обработчики мышиных кликов. Если эта установка срабатывала каждый новый клик, то алертов с каждым кликом становилось все больше и больше...


Автор: DeamonShan 30.8.2010, 09:51
Я кстати, не заметил исправление кода... первый раз ты другое писал)))


Алерт сработал, а как удалить?

el.remove(); не пашет...

и подозрение что это уже JavaScript  а не jQuery... 

Автор: CruorVult 30.8.2010, 10:01
Код

$(".table_layer td").click(function(){
      $(this).remove();
   });


Добавлено через 1 минуту и 28 секунд
Цитата(DeamonShan @  30.8.2010,  09:51 Найти цитируемый пост)
и подозрение что это уже JavaScript  а не jQuery... 

а разве jQuery это не JavaScript ? smile 

Автор: CruorVult 30.8.2010, 11:15
удалено автором smile

Автор: DeamonShan 30.8.2010, 12:09
Цитата(CruorVult @ 30.8.2010,  10:01)
Код

$(".table_layer td").click(function(){
      $(this).remove();
   });



тут надо учесть, что таблица сгенерирована динамически...

Автор: CruorVult 30.8.2010, 12:18
не туда глянул, вот так покатит:

Код

function clickRow(el){
       $(el).remove();
}


Автор: DeamonShan 30.8.2010, 12:25
Да я уже сообразил))) СПАСИБО в любом случае.

Powered by Invision Power Board (http://www.invisionboard.com)
© Invision Power Services (http://www.invisionpower.com)