Javascript d3.鼠标(此)抛出TypeError:t为空
我正在尝试将鼠标悬停动作添加到我的d3条形图中。但在代码的底部,d3.mouse(这个)抛出类型错误 有什么想法吗 这是我的密码Javascript d3.鼠标(此)抛出TypeError:t为空,javascript,d3.js,Javascript,D3.js,我正在尝试将鼠标悬停动作添加到我的d3条形图中。但在代码的底部,d3.mouse(这个)抛出类型错误 有什么想法吗 这是我的密码 svg.append("rect") .attr("class", "overlay") .attr("width", width) .attr("height", height) .on("mouseover", function() { focus.style("display", null); })
svg.append("rect")
.attr("class", "overlay")
.attr("width", width)
.attr("height", height)
.on("mouseover", function() {
focus.style("display", null);
})
.on("mouseout", function(d) {
div.transition()
.duration(50)
.style("opacity", 1e-6);
})
.on("mousemove", function(){
//move focus around
console.log(d3.mouse(this));
var x0 = x.invert(d3.mouse(this)[0]);
var i = bisectDate(data, x0, 1);
var d0 = data[i - 1];
var d1 = data[i];
var d = x0 - d0.date > d1.date - x0 ? d1 : d0;
return;
focus.attr("transform", "translate(" + x(d.date) + "," + y(d.accidents) + ")");
div.transition()
.duration(50)
.style("opacity", .9);
div.html("<h4>Company Name : <strong>"+ company_name +"</strong><br/> Date : <strong>"+ formatTime(d.date) +"</strong><br/>"+ bar_text +" : <strong>" + d.deaths + "<br/></strong>"+ line_text +" : <strong>"+ d.accidents +"</strong></h4>")
.style("left","39%")
.style("top", "160px");
});
svg.append(“rect”)
.attr(“类”、“覆盖”)
.attr(“宽度”,宽度)
.attr(“高度”,高度)
.on(“鼠标悬停”,函数(){
focus.style(“显示”,空);
})
.开启(“鼠标出”,功能(d){
过渡部()
.期限(50)
.样式(“不透明度”,1e-6);
})
.on(“mousemove”,function(){
//转移注意力
console.log(d3.mouse(this));
var x0=x.invert(d3.鼠标(this)[0]);
var i=平分日期(数据,x0,1);
var d0=数据[i-1];
var d1=数据[i];
var d=x0-d0.date>d1.date-x0?d1:d0;
返回;
attr(“transform”、“translate”(+x(d.date)+)、“+y(d.date)+”);
过渡部()
.期限(50)
.样式(“不透明度”,.9);
div.html(“公司名称:”+公司名称+”日期:“+formatTime(d.Date)+”
“+bar\u text+”:“+d.deathers+”
“+line\u text+”:“+d.contactures+””) .style(“左”、“39%”) .样式(“顶部”、“160px”); });
我认为必须对d3选择的元素调用onmouse操作。我不能真正使用你的代码,但我没有鼠标错误
var svg = d3.select('body').append('svg:svg')
.attr('fill', 'blue');
svg.append("rect")
.attr("class", "overlay")
.attr("width", 333)
.attr("height", 333)
.on("mouseover", function() {
focus.style("display", null);
})