停止将click事件传递给注释(防止弹出)

时间:2016-02-14 08:12:17

标签: google-maps titanium apple-maps

我正在使用ti.Map

我希望在用户点击注释时执行某些操作。

//make mapview
    var mapView = Map.createView({
        mapType:Map.NORMAL_TYPE,
    });

//make anotation
    annot= Map.createAnnotation({
            latitude: myLatitude
            longitude: myLongitude
            title: myTitle
            width:'100dp',
            height:'100dp'
    });

// add annotation
    mapView.addAnnotation(annot);

//handle the annotation click 
    mapView.addEventListener('click', function(evt) {
        if (evt.clicksource == "pin"){ // if user click annotation
            //do something
            return; //I try this 
        }
    });

效果很好。

然而,在执行某些操作后,会出现注释弹出窗口(作为默认行为)

我想停止注释弹出窗口。

1)我尝试阻止传递给注释类的事件。

2)停止注释不要对点击事件作出反应。

我该如何解决?

1 个答案:

答案 0 :(得分:1)

如果要停止注释弹出窗口,请尝试对title的属性annot发表评论。我试过这个并且工作正常。

//make anotation
annot= Map.createAnnotation({
        latitude: 19.151201,
        longitude: 72.938237,
        // title: 'myTitle',
        width:'100dp',
        height:'100dp'
});

//handle the annotation click 
mapView.addEventListener('click', function(evt) {
    if (evt.clicksource == "pin"){ // if user click annotation
        //do something
        alert('Pin clicked');
        return; //I try this 
    }
});

只有警报可见,没有注释弹出窗口。

一些更新的代码:

annot= Map.createAnnotation({
    latitude: 19.151201,
    longitude: 72.938237,
    title: ' ',
    backgroundColor : 'transparent'
});
// add annotation
mapView.addAnnotation(annot);

//handle the annotation click 
mapView.addEventListener('click', function(evt) {
if (evt.clicksource == "pin"){ // if user click annotation
    alert('Pin clicked');
    evt.annotation.title = "";
    // return; //I try this 
}else if (evt.clicksource == "map"){
    alert('map');
    evt.annotation.title = " ";
}
});