0
我有一個在每行中有多行的表是一個選擇列表,並基於選擇(當onchange事件被觸發時)面板出現在行下面包含附加數據。我目前有代碼像這樣:在jQuery中滑動和隱藏多個面板
var allPnls = '.inv-dtl-comnts-add,.inv-dtl-comnts-update';
$(document).ready(function(){
hideAll();
//select action change
$(".inv-dtl-ddlaction").change(onSelectChange);
$(".btn-cancel").click(function(event){
slideAll();
$(".inv-dtl-ddlaction").val('[Select an Action]');
return false;
});
});
function onSelectChange(event){
//find out which select item was clicked
switch($(this).val())
{
case 'View/Add Comment':
$(this).closest(".row").children(allPnls).slideUp("fast",
function(){
$(this).closest(".row").children(".inv-dtl-comnts-add").slideToggle("fast");
});
break;
case 'Change Status':
$(this).closest(".row").children(allPnls).slideUp("fast",
function(){
$(this).closest(".row").children(".inv-dtl-comnts-update").slideToggle("fast");
});
break;
default:
//code to be executed if n is different from case 1 and 2
}
}
function hideAll(){
$(allPnls).hide();
}
function slideAll(){
$(allPnls).slideUp("fast");
}
所以我隱藏所有的面板在頁面加載時,如果面板已經打開我要滑動關閉重新打開新的面板前。這與回發一起工作。只有一個面板在選擇它的工作很好,但有兩個面板向上滑動兩次(它似乎滑下未開啓的面板,然後再次滑動它們)。我如何調整這一點,以便讓變量allPnls中列出的所有面板只有在它們已經打開時才能滑動關閉?有沒有更好的方法來關閉面板,然後讓回調讓slideToggle工作?
勞埃德