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 に答える