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工作?
劳埃德