2013-02-09 41 views
0

我需要移動地圖,然後需要顯示對話框。下面的代碼顯示對話框,然後地圖得到移動,這是完全相反的行爲。移動地圖然後顯示對話框

function showDetails(property_id) 
{ 
    map.panBy(300,0);   
    sleep(3000);    
    window.showModalDialog("<?php echo base_url();?>index.php/admin/add_property_from_map/"+18+"/"+73); 
} 

function sleep(ms) 
{ 
    var dt = new Date(); 
    dt.setTime(dt.getTime() + ms); 
    while (new Date().getTime() < dt.getTime()); 
} 

回答

1

莫勒博士指出。您的sleep()函數阻止對正在運行的任何其他代碼的所有訪問。使用setTimeout函數。類似這樣的:

function showDetails(property_id) 
{ 
    map.panBy(300,0);   
    window.setTimeout(function() 
    { 
     window.showModalDialog("<?php echo base_url();?>index.php/admin/add_property_from_map/"+18+"/"+73); 
    }, 3000); 
} 
1

您的睡眠功能會阻止瀏覽器運行(即使地圖的平移將被阻止)。使用window.setTimeout()來完成平移和對話之間的延遲。