uniapp中marker.on 的点击事件怎么传递参数
时间: 2023-09-29 14:08:01 浏览: 121
在uniapp中,使用 marker.on 的方式与原生JavaScript相同,可以使用函数的方式传递参数。具体实现方法如下:
1.在data中定义需要传递的参数
```
data() {
return {
param1: '参数1',
param2: '参数2'
}
}
```
2.定义一个函数,该函数接收需要传递的参数。
```
function markerClick(param1, param2) {
console.log(param1, param2);
}
```
3.在 marker.on 的点击事件中调用该函数,并将需要传递的参数作为参数传递给该函数。
```
marker.on('click', function() {
markerClick(this.param1, this.param2);
});
```
这样,在 marker.on 的点击事件中,可以通过 this.param1 和 this.param2 获取到定义在 data 中的参数值,并将其作为参数传递给 markerClick 函数,从而实现了在 marker.on 的点击事件中传递参数的功能。
相关问题
marker.on 的点击事件怎么传递参数
在使用 marker.on 的点击事件时,可以使用函数的方式传递参数。具体实现方法如下:
1.定义一个函数,该函数接收需要传递的参数。
```
function markerClick(param1, param2) {
console.log(param1, param2);
}
```
2.在 marker.on 的点击事件中调用该函数,并将需要传递的参数作为参数传递给该函数。
```
marker.on('click', function() {
markerClick('参数1', '参数2');
});
```
这样,当点击 marker 时,会执行 markerClick 函数,并将参数 '参数1' 和 '参数2' 传递给该函数,从而实现了在 marker.on 的点击事件中传递参数的功能。
uniapp 点击marker出现callout
您可以在uniapp中使用以下代码来实现点击marker弹出callout:
```
<template>
<view class="map">
<map :latitude="latitude" :longitude="longitude" @tap="onTap" :markers="markers"></map>
</view>
</template>
<script>
export default {
data() {
return {
latitude: 39.92,
longitude: 116.46,
markers: [
{
id: 1,
latitude: 39.92,
longitude: 116.46,
title: 'Marker',
iconPath: '/static/images/location.png',
width: 50,
height: 50,
callout: {
content: 'Hello Uniapp',
color: '#ffffff',
fontSize: 16,
borderRadius: 10,
bgColor: '#000000',
padding: 10,
display: 'ALWAYS'
}
}
]
}
},
methods: {
onTap(e) {
const { markerId } = e
if (markerId === 1) {
this.markers[0].callout.display = 'ALWAYS'
this.markers = [...this.markers]
}
}
}
}
</script>
<style>
.map {
width: 100%;
height: 100%;
}
</style>
```
注意:在markers数组中,需要设置callout对象来定义callout的样式和内容,在onTap方法中,根据markerId来判断是否点击了对应的marker,然后将该marker的callout.display属性设置为'ALWAYS',以显示callout。最后需要使用解构赋值的方式更新markers,来使得页面重新渲染。
阅读全文