2014-08-15 7 views
1

Это закрывает предыдущую запись меню, когда я нажимаю на новую запись, но этот не работает, когда я снова нажимаю на ту же запись, меню остается открытым.slideToggle with table show and hide

Я не знаю, как синтаксис проверяет, являются ли предыдущие и текущие записи такими же и только скрывают.

$(document).on("click", ".library-item-title", function (e) { 
    e.preventDefault(); 
    var entry_id = $(this).data("id"); 
    toggleDropdown(entry_id); 
}); 

function toggleDropdown(entry_id) { 
    $(".library-edit-dropdown").hide("slow"); 
    $("#library-edit-dropdown-" + entry_id).show("slow"); 
} 

http://jsfiddle.net/patelmilanb1/LzaZT/1/

Может кто-нибудь мне помочь?

ответ

0

Вы можете использовать toggle и not методы:

function toggleDropdown(entry_id) { 
    $(".library-edit-dropdown") 
    .not($("#library-edit-dropdown-" + entry_id).toggle("slow")) 
    .hide("slow"); 
} 

http://jsfiddle.net/wqtuy0mx/

Обратите внимание, что выше запрос может быть дорогим. Вы используете делегирование событий, возможно, это означает, что вы генерируете элементы динамически, но если кеширование возможно, вы должны кэшировать коллекцию и повторно использовать ее.

+0

Спасибо, все работает! :) – Vanles

-1

использование этот сценарий.

<script type="text/javascript"> 
$(function() { 
$('tr.parent') 
    .css("cursor","pointer") 
    .attr("title","Click to expand/collapse") 
    .click(function(){ 
     $(this).siblings('.child-'+this.id).toggle("show"); 
    }); 
$('tr[@class^=child-]').hide().children('td'); 
}); 
</script> 

и использовать его в родительском элементе в таблице.

class="parent" id="main_someid" 

и это в детстве в таблице.

class="child-main_someid" 

Это сработало для меня. вы можете получить его, предоставив некоторую переменную. проверить скрипку. http://jsfiddle.net/makicool/LzaZT/2/