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());
}   
4

2 回答 2

1

只要浏览器正在运行,您的睡眠功能就会阻止浏览器(甚至地图的平移也会被阻止)。用于window.setTimeout()完成平移和对话框之间的延迟。

于 2013-02-09T10:59:44.970 回答
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);
}
于 2013-02-09T12:52:19.210 回答