Javascript 移动地图然后显示对话框

Javascript 移动地图然后显示对话框,javascript,google-maps,Javascript,Google Maps,我需要移动地图,然后需要显示对话框。下面的代码显示对话框,然后映射得到move,这是完全相反的行为 function showDetails(property_id) { map.panBy(300,0); sleep(3000); window.showModalDialog("<?php echo base_url();?>index.php/admin/add_property_from_map/"+18+"

我需要移动地图,然后需要显示对话框。下面的代码显示对话框,然后映射得到move,这是完全相反的行为

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());
}   
函数showDetails(属性\u id)
{
潘比地图(300,0);
睡眠(3000);
showmodaldiallog(“index.php/admin/add_property_from_map/”+18+“/”+73);
}
功能睡眠(ms)
{
var dt=新日期();
dt.setTime(dt.getTime()+ms);
while(newdate().getTime()
只要浏览器在运行,睡眠功能就会阻止浏览器(甚至地图的平移也会被阻止)。使用
window.setTimeout()
完成平移和对话框之间的延迟。

正如莫勒博士指出的那样。您的sleep()函数正在阻止对正在运行的任何其他代码的所有访问。使用该函数。大概是这样的:

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);
}
函数showDetails(属性\u id)
{
潘比地图(300,0);
setTimeout(函数()
{
showmodaldiallog(“index.php/admin/add_property_from_map/”+18+“/”+73);
}, 3000);
}