수색…


통사론

  • .on ( 'mouseover', function)
  • .on ( 'mouseout', function)
  • .on ( '클릭', 기능)
  • .on ( 'mouseenter', function)
  • .on ( 'mouseleave', 함수)

비고

커스텀 이벤트가 정의 된 깊이있는 예제를 보려면 여기를 참조 하십시오 .

선택 항목에 기본 이벤트 첨부

종종 개체에 대한 이벤트를 원할 것입니다.

function spanOver(d,i){
  var span = d3.select(this);
  span.classed("spanOver",true);
}

function spanOut(d,i){
  var span = d3.select(this);
  span.classed("spanOver", false);
}

var div = d3.select('#divID');

div.selectAll('span')
  .on('mouseover' spanOver)
  .on('mouseout' spanOut)

이 예는 클래스에 추가합니다 spanOver 는 ID와 사업부 내부 경간 유혹 할 때 divID 마우스가 범위를 종료 할 때를 제거합니다.

기본적으로 d3은 현재 범위와 색인의 데이터를 전달합니다. 그것은 정말 간단 하군요 this 우리가 추가 또는 제거 클래스처럼, 그것을 작업을 할 수 있도록의 컨텍스트뿐만 아니라 현재의 객체입니다.

이벤트에서 익명의 함수를 사용할 수도 있습니다.

div.selectAll('span')
  .on('click', function(d,i){ console.log(d); });

데이터 요소는 현재 선택된 객체에도 추가 될 수 있습니다.

div.selectAll('path')
  .on('click', clickPath);

function clickPath(d,i) {
  if(!d.active) {
    d.active = true;
    d3.select(this).classed("active", true);
  }
  else {
    d.active = false;
    d3.select(this).classed("active", false);
  }
}

이 예제에서는 click 이벤트가 발생하기 전에 선택 영역에 active가 정의되어 있지 않습니다. 모든 클릭 된 객체가 active 키를 포함 할지라도 경로 선택으로 돌아가려면 다시 선택해야합니다.

이벤트 리스너 제거

d3.js에는 기존 이벤트 리스너를 디파인하는 .off() 메소드가 없습니다. 이벤트 처리기를 제거하려면 null 로 설정해야합니다.

d3.select('span').on('click', null)


Modified text is an extract of the original Stack Overflow Documentation
아래 라이선스 CC BY-SA 3.0
와 제휴하지 않음 Stack Overflow