2013-12-04 6 views
0

Я установил новое свойство в элементе таблицы (каждая таблица должна иметь свойство selectedRow, которое является указателем на элемент tr, который выбран), но фактически между вызовами моего обработчика кликов, который свойство становится null:jquery - добавление атрибута нового элемента

$("table.grid").each(function() { 
     this.selectedRow = null; 
    }); 

    var selectRow = function (tr) { 

     var table = tr.parents("table").get(); 

     if (table.selectedRow == tr.get()) return; 

     // table.selectedRow still NULL!!!!!!!!!!! 
     if (table.selectedRow) { 
      var unselect = $(table.selectedRow); 
      unselect.removeClass('selectedChilds'); 
      unselect.prev('tr').removeClass('siblingUpChilds'); 
      unselect.next('tr').removeClass('siblingDownChilds'); 
     } 

     table.selectedRow = tr.get(); 

     tr.addClass('selectedChilds'); 
     tr.prev('tr').addClass('siblingUpChilds'); 
     tr.next('tr').addClass('siblingDownChilds'); 

    } 

    $('table.grid tr').click(function (e) { 
     selectRow($(e.delegateTarget)); 
    }); 
+1

вы используете плагин? Таблицы не имеют свойства selectedRow. – Christophe

+0

no я установил это свойство ... – Krab

+0

ОК, проблема в том, что свойство привязано к переменной, которая хранит вашу таблицу, а не к самой таблице. – Christophe

ответ

1

Используйте data(key[, value]) установить/получить свойства:

$('#my-elem').data('selected_row', '...'); 
Смежные вопросы