我在地图上有点(圆)的地图,画在d3中。我有一个mouseover侦听器事件,当用户将鼠标悬停在圆圈上时,该事件会格式化圆圈/添加弹出窗口。但是,我无法在移动设备上(当用户点击一个点时)获得相当于“ mouseover”的效果,并且我很好奇是否有一个相对简单的解决方案。这是我目前的方法,在台式机上效果很好:
// render d3 svg
var events = mapG.selectAll("circle")
.data(allSFEvents)
.enter().append("circle")
.attr("class", 'events')
.style("display", initialDateMatch)
.style("pointer-events", "all")
// Display only events on today's date
function initalDateMatch(data){
//Do some stuff to get if today's date matches event date
if (todaysDate === data.dateFormatted) {
return 'inline'
} else {
return 'none'
}
}
//Finally, add popup and formatting to circle on mouseover
.on("mouseover", function(d) {
//add popup
//some code to add popup
//set class to have special appearance
d3.select(this).attr("class","countyHover");
})
.on("mouseout", function(d) {
//remove popup
//some code to remove popup
//set class back to normal appearance
d3.select(this).attr("class","events");
})
不幸的是,这不适用于移动设备,并且单击圈子没有任何作用。我可以添加:
.on("click", function(d) {
d3.select(this).attr("class","countyHover");
})
哪些功能可以在移动设备上使用,但是我很难找到一种方法来删除点击后的弹出窗口和格式设置(即,我没有找到等同于“点击”的功能)。任何帮助表示赞赏!