Mouseover事件处理程序在D3中不起作用?

时间:2019-07-18 06:33:24

标签: javascript d3.js leaflet click mouseover

我在地图上有点(圆)的地图,画在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");   
          })

哪些功能可以在移动设备上使用,但是我很难找到一种方法来删除点击后的弹出窗口和格式设置(即,我没有找到等同于“点击”的功能)。任何帮助表示赞赏!

0 个答案:

没有答案