selection.on

 selection.on(type[, listener[, capture]])   //为交互添加或移除事件监听器

在当前选择的每个元素,为指定的类型type,添加或删除事件监听器listener 。type是一个字符串事件类型的名称,如“点击”,“鼠标悬停”,或“提交”。基本上支持任何DOM事件。有关D3支持的事件类型的更多详细信息,请查看Mozilla或Stackoverflow。指定的listener 与其他操作符函数调用方式相同,被传递的当前数据d和索引i与this上下文作为当前的DOM元素。为了在侦听器内访问当前事件,使用全局函数d3.event。事件侦听器的返回值将被忽略。

如果所选择的元素相同类型的一个事件监听已经注册了,新的侦听加入之前的现有侦听被除去。为注册相同事件类型的多个监听器,该类型可以跟一个可选的命名空间,如“click.foo”和“click.bar”。 要删除一个监听器,传递null给listener,删除特定事件类型所有监听,传递null给listener,指定.type的类型,如:selection.on(".foo", null)。

一个可选的捕获capture标志可以指定,对应于W3C的useCapture标志:“开始捕获后,所有指定类型的事件将被分派到注册的EventListener在被分派到事件树任何EventTargets下,事件是沿着树向上冒泡而不会触发一个EventListener指定使用捕获”。

如果未指定监听器,指定类型(如果有)返回当前分配的监听器。

eg:

  .on("mouseover",function(d,i){
            d3.select(this)
            .attr("fill","#9435e7")
            .attr("cursor","pointer")
    })
  .on("mouseout",function(d,i){
      d3.select(this)
         .attr("fill",color(i));
  })

results matching ""

    No results matching ""