search

Home  >  Q&A  >  body text

javascript - 请教各位关于百度地图api标注点marker的click事件问题

百度地图在地图中给标注点marker添加后click事件后

marker.addEventListener("click", function(){})

如何在其他地方自动触发这个marker点击事件?
因为输出marker是一个对象,所以并不能marker.click()
想做的就是如百度地图那样点击左边搜索结果栏右边标注点自动点击一次

PHP中文网PHP中文网2901 days ago623

reply all(1)I'll reply

  • PHP中文网

    PHP中文网2017-04-10 15:13:40

    感觉api确实不太好用,想出来俩解决方案。

    1.可以定义好事件处理函数,想要触发时执行一遍:

    marker.addEventListener('click',func);
    function func(){
        alert();
    }
    // 想要触发时,直接调用func
    func();
    

    2.发现marker有一个属性B指向标记DOM,但B只在地图加载完成后才有值,否则为null,所以可以在地图加载完成后给给B绑定事件.

    map.addEventListener("tilesloaded",function(){
        marker.B.addEventListener('click',function(){
            alert();
        });
    
        /* 使用zepto或jQuery
        $(marker.B).on('click',function(){
            alert();
        });
        */
    });
    
    // 注意触发时要保证地图加载完成
    marker.B.click();
    /* 或
    $(marker.B).trigger('click');
    */
    
    

    也可以不等地图加载完,定义marker后就直接绑定,但触发时还是触发marker.B也是可以的。

    marker.addEventListener('click',function(){
        alert();
    });
    
    // 注意触发时要保证地图加载完成
    marker.B.click();
    

    reply
    0
  • Cancelreply