2015-05-21 45 views
0

對標題中的措辭感到抱歉,但我不確定如何準確解釋這裏發生的事情。我在這裏有下面的代碼,它基本上擴展了包含按鈕的特定表的tbody元素,這些按鈕顯示了表格下方的其他div。當用戶按下「關閉」時,我希望它也關閉表格下可能打開的任何div,可能已經通過tbody中的鏈接打開。繼承人我的代碼:隱藏滑塊以外的目標div以外的div

$("#pdays_expand").on("click", function() { 
       $("#pdays_tbody").slideToggle("slow", function() { 
        //$('body').scrollTo($('#pdays_tbody'),500); 
        $("#pdays_expand").text($(this).is(':visible') ? "Close" : "Expand"); 
       }); 
       if (("#pdays_tbody").is(':hidden')) { 
        $("#search_pdays_medicare").hide(); 
        $("#search_pdays_medicaid").hide(); 
        $("#search_pdays_other").hide(); 
        $("#search_pdays_totalallpay").hide(); 
        $("#search_pdays_totalcombine").hide(); 
        } 
      }); 

我的問題是,當tbody被打開後按「關閉」。它不會關閉下面列出的任何#search div,它們仍然在表格下方開放。然而,pdays_tbody div成功關閉。

感謝

+2

我們可以有一個小提琴或一些HTML嗎? – AmmarCSE

+0

http://hospitaldatasolutions.com/php/hosp_core.php繼承人頁面鏈接發生,我不得不關閉我的安全,所以它花了我一分鐘。 – Habitat

回答

0

貌似問題是,你正在檢查,看看是否paydays_tbody是隱藏的幻燈片動畫有機會完成之前。從技術上講,它在動畫完成之前不會隱藏。嘗試,如果塊移動你的完整的回調裏面,它應該工作:

$("#pdays_expand").on("click", function() { 
    $("#pdays_tbody").slideToggle("slow", function() { 
    //$('body').scrollTo($('#pdays_tbody'),500); 
    $("#pdays_expand").text($(this).is(':visible') ? "Close" : "Expand"); 

    if (("#pdays_tbody").is(':hidden')) { 
     $("#search_pdays_medicare").hide(); 
     $("#search_pdays_medicaid").hide(); 
     $("#search_pdays_other").hide(); 
     $("#search_pdays_totalallpay").hide(); 
     $("#search_pdays_totalcombine").hide(); 
    } 
    }); 
}); 

此外,可以考慮使用一個共同的選擇爲搜索的div(類可能是理想的)。它會爲您節省幾個jQuery調用,並使您的代碼更易讀易維護(例如,如果您想添加其他搜索字段)。

希望這會有所幫助!