2013-03-14 2 views
1

Я являюсь абсолютным новичком в javascript и jQuery, пытаясь учиться. У меня есть несколько таблиц, которые переключаются с этим JQuery:jQuery toggle - показать только один div

$(document).ready(function() { 
    $('th').click(function() { 
     $(this).parents('table').find('td').slideToggle("fast"); 
    }); 
}); 

Я хотел бы показать только одну таблицу, в то время, так что если вы покажете первую таблицу, а затем показать другим, первый один закрывает. Я был бы очень благодарен за любые рекомендации. Полный код здесь: http://jsfiddle.net/qHGDF/1/

+0

Вы можете показать свои divs/html ?? –

+0

Пожалуйста, покажите нам образец вашего html-кода. –

+0

Извините. Полный код здесь: http://jsfiddle.net/qHGDF/1/ – frassedylan

ответ

1

Вам необходимо скрыть те, которые открыты, один из способов сделать это, чтобы найти все ТД, которые не один, который должен быть показан и запустить slideUp(): http://jsfiddle.net/qHGDF/4/

$('th').click(function() { 
    var thetd = $(this).parents('table').find('td'); 
    $('table td').not(thetd).slideUp("fast"); 
    $(thetd).slideToggle("fast"); 
}); 
+0

Отлично! Всем спасибо. Ответ superUntitles также позволяет закрыть показанный td. Спасибо. – frassedylan

1

Попробуйте

$('th').click(function() { 
    $(".datagrid").children("table").find("td").slideUp(); 
    $(this).parents('table').find('td').slideToggle("fast"); 
    }); 
0

Вы всегда можете скользить вверх все другие ТД

$(document).ready(function() { 
    $('th').click(function() { 
     $("td").slideUp("fast"); 
     $(this).parents('table').find('td').slideToggle("fast"); 
    }); 
}); 
0

для того, чтобы сделать это, вам нужно, чтобы скрыть все ТДС первый

var $ = jQuery.noConflict(true); 
     $('th').click(function() { 
      $('table td').hide(300); 
      $(this).parents('table').find('td').slideToggle("fast"); 
     }); 

fiddle

0

Если вы» будет иметь слишком много записей ваших таблиц, а также в целях оптимизации на рендеринге, слайда<tbody> элемента вместо <td>

0

Вы можете попробовать это: http://jsfiddle.net/5hDVS/

$(document).on('click','div.datagrid',function() { 
    $('table td',this).slideToggle("fast"); 
    $('td',$(this).siblings('div.datagrid')).slideUp('fast'); 
}); 
Смежные вопросы