2010-03-04 5 views
0

У меня есть таблица, которая выкладывается, как это:Jquery, чтобы скрыть содержимое ячейки таблицы

<table> 
    <tr> 
    <td>checkbox</td> 
    <td>text-text-text</td> 
    <td>dropdownlist</td> 
    <td>textbox</td> 
    </tr> 
</table> 

Я пытаюсь переключить visiblity из выпадающего списка и текстового поля на основе проверки состояния флажка. У меня настроено событие клика, которое делает это правильно, но оно не сохраняет видимость строк при загрузке новых данных. Как я могу сделать это в JQuery?

Редактировать: Это функция, привязанная к событию клика на флажке. Он правильно переключает видимость элемнов. Проблема, с которой я столкнулась, - это получить новые строки, загруженные из базы данных, чтобы начать с правильной видимости. (Я использую ретранслятор в asp.net для построения таблицы, поэтому я передаю идентификаторы клиентов в функцию).

Упрощенный: у меня есть таблица с флажком в первой ячейке каждой строки, какой селектор в jquery я использовал бы, чтобы получить содержимое остальных ячеек в этой строке из флажка.

function ToggleVisibility(position, hometown, state, checkbox, name, license) { 
     if ($("#" + checkbox)[0].checked) { 
      $("#" + position).css('visibility', 'visible').fadeIn('slow'); 
      $("#" + hometown).css('visibility', 'visible').fadeIn('slow'); 
      $("#" + state).css('visibility', 'visible').fadeIn('slow'); 
      $("#" + name).css('font-weight', 'bold'); 
      $("#" + license).css('font-weight', 'bold'); 
     } 
     else { 
      $("#" + position).css('visibility', 'hidden').fadeOut('slow'); 
      $("#" + hometown).css('visibility', 'hidden').fadeOut('slow'); 
      $("#" + state).css('visibility', 'hidden').fadeOut('slow'); 
      $("#" + name).css('font-weight', 'normal'); 
      $("#" + license).css('font-weight', 'normal'); 
     } 
} 
+0

Можем ли мы увидеть JS, пожалуйста, –

ответ

1

Единственный способ сделать это - использовать Ajax для сохранения обновленного состояния на сервере. Например:

<input type="checkbox" id="cb1" class="save"> 

с:

$(":checkbox.save").click(function() { 
    $.post('/save.php', {id: this.id, checked: this.checked}); 
    $("rowid").toggle(this.checked); 
}); 

Затем, когда сервер отображает страницу он может запросить сохраненное состояние страницы и визуализации элементов управления и строк правильно.

+0

Нет, это не единственный способ ... – Guffa

+0

Я использую asp.net, и у меня нет проблемы с сохранением значений, это просто вопрос их наличия с правильной видимостью после их загрузки, так как на флажке не происходит «щелчка». – Barry

+0

@Barry: лучший способ - использовать встроенный CSS (или даже встроенный JS, если необходимо), который динамически генерируется сервером для запуска вещей в правильном состоянии. В качестве альтернативы вы можете добавить функцию, которая поместит все в правильное состояние и вызовет ее в готовом документе. – cletus

0

Вы можете посмотреть на livequery, который является плагин для JQuery: Livequery

0

Поместите элементы, которые вы хотите скрыть в DIV и скрыть DIV, а не ячейку таблицы.

Смежные вопросы