本人的我的博客爲: www.ourd3js.com javascript
csdn博客爲: blog.csdn.net/lzhlzz html
轉載請註明出處,謝謝。java
這一節介紹怎樣進行對話的操做,如鼠標單擊,鼠標滑過等。瀏覽器
對一個被選擇的元素,加入對話操做,代碼例如如下:app
.on("click", function(){ } )函數可以是無名函數。也可以是自定義的函數。上面代碼監聽的是鼠標單擊的事件。但鼠標在被選擇對象上單擊時,就會調用函數 function 。
常用的事件(event)有:svg
svg.selectAll("rect") .data(dataset) .enter() .append("rect") .attr("x", function(d,i){ return 30 + xScale(i); } ) .attr("y",function(d,i){ return 50 + 500 - yScale(d) ; }) .attr("width", function(d,i){ return xScale.rangeBand(); }) .attr("height",yScale) .attr("fill","red") .on("click",function(d,i){ d3.select(this) .attr("fill","green"); }) .on("mouseover",function(d,i){ d3.select(this) .attr("fill","yellow"); }) .on("mouseout",function(d,i){ d3.select(this) .transition() .duration(500) .attr("fill","red"); });上面的代碼加入了鼠標點擊( click ),鼠標移入( mouseover )。鼠標移出( mouseout )三個操做。
上面的操做的函數中都調用了 d3.select(this) , 這是表示選擇當前的元素,this 是當前的元素,因爲在事件中一般要改變被點擊的元素等,因此常有這段代碼,要記住。函數