2017-02-07 23 views
0

我有一個問題,並想知道如果我做錯了什麼。在執行其他功能之前先在JS中顯示模態

我有一個接近200 div的頁面。

所以當我運行該功能時,基本上它先隱藏所有200個div,然後顯示特定的div。這已經發生了。但由於它首先隱藏了所有200個div,然後顯示10-15個div [基於運算符邏輯],它需要5-7秒。

我一直希望在函數啓動時顯示彈出式模式,然後循環div以隱藏它們。然後顯示需要顯示的div的函數,並最終隱藏彈出窗口, up模式。

但是當我運行該函數時,模態很難出現,因爲它等待整個循環完成。

我使用了以下內容:

function show_by_price() 
{ 
    $('#loading').modal('show'); 

    for(j=1; j<= $("#total_div_count").val(); j++) 
    { 
     $("#div_id_"+j).hide() 
    } 

    $('#loading').modal('hide'); 
} 
+0

'模態很難出現,因爲它等待整個循環完成'你是什麼意思? – makshh

+0

爲什麼對所有ID使用循環?你不能使用普通的類嗎?或者使用*屬性以*選擇器開頭 – empiric

+0

爲什麼你要顯示模態,然後立即再次隱藏它? – Adam

回答

0

我無法理解與形式上的問題,但我還有一個問題 -

你爲什麼不有2個的div,一個主容器所有200個元素和另一個「幫助」容器。所以當你需要隱藏時 - 你隱藏主容器而不是一個接一個地隱藏200個元素,然後移動應該顯示在第二個幫助容器中的10-15個元素,這個元素是可見的?

這應該是更好的性能,明智的。

0

不要做這一切的JavaScript,還有一個更有效的方式來顯示/隱藏元素通過Samuil的建議。這就是說,你可能有興趣根據bootstrap modal events來調查。

$('#loading').on('shown.bs.modal',function() { 
    //execute code in here after the modal is fully visible 
}).modal('show'); 
相關問題