是否有“仅在鼠标结束时运行但在鼠标未结束时停止”的 javascript 命令

Is there a javascript command for 'only run when the mouse is over but stop when its not over'

本文关键字:鼠标 命令 未结束 javascript 运行 结束 是否      更新时间:2023-09-26

我知道鼠标悬停,但我在页面上有一个圆圈,当鼠标悬停在它上面时会亮起。但是当鼠标离开它时,它会保持亮起,直到它再次悬停,当它再次关闭时。真的很烦人。是否有一条指令仅在悬停时触发?这是代码,虽然大部分不相关

var node = svg.selectAll(".node")
      .data(graph.nodes)
      .enter().append("circle")
      .attr("class", "node")
      .attr("r", function(d) { return d.group * 3; })
      .style("fill", function(d) { return color(d.group); })
      .call(force.drag)
      .on('mouseover', connectedNodes)
      .on("click",  function(d) { getprofile(d); });

您需要定义鼠标退出事件。所以你的代码将是这样的:

    var node = svg.selectAll(".node")
          .data(graph.nodes)
          .enter().append("circle")
          .attr("class", "node")
          .attr("r", function(d) { return d.group * 3; })
          .style("fill", function(d) { return color(d.group); })
          .call(force.drag)
          .on('mouseover', connectedNodes)
          .on('mouseout', doSomethingCallback)
          .on("click",  function(d) { getprofile(d); });
function doSomethingCallback(){
  fill your circle with the original color
}

您正在寻找mouseleave .这是它的D3演示:http://bl.ocks.org/mbostock/5247027

您可以使用

.on('mouseout', function(){});在鼠标悬停时停止函数启动。