Javascript 代码不工作

Javascript 代码不工作,javascript,d3.js,Javascript,D3.js,请查找要生成的代码 <style> text.shadow { stroke: #fff; stroke-width: 2.5px; opacity: 0.9; } text.shadow{ 冲程:#fff; 笔划宽度:2.5px; 不透明度:0.9; } 我附上了代码,该代码应显示您需要使用正确的数据。您具有以下功能: function mousemove() { var x0 = x.invert(d3.mouse(this)[0]),

请查找要生成的代码

 <style>
text.shadow {
stroke: #fff;
stroke-width: 2.5px;
opacity: 0.9;
}

text.shadow{
冲程:#fff;
笔划宽度:2.5px;
不透明度:0.9;
}

我附上了代码,该代码应显示

您需要使用正确的数据。您具有以下功能:

 function mousemove() {
         var x0 = x.invert(d3.mouse(this)[0]),
           i = bisectDate(data, x0, 1),
           d0 = newDataArray[i - 1],
           d1 = newDataArray[i],
           d = x0 - d0.i > d1.i - x0 ? d1 : d0;
         focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
         focus.select("text").text(Math.floor(d.fit));
       }
function mousemove() {
            var x0 = x.invert(d3.mouse(this)[0]),
                i = bisectDate(data, x0, 1),
                d0 = newDataArray[i-1],
                d1 = newDataArray[i],   
                d = x0 - d0.i > d1.i - x0 ? d1 : d0;
            focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
            focus.select("text").text(Math.floor(d.fit));
        }
function mousemove() {
   var x0 = x.invert(d3.mouse(this)[0]), 
     i = bisectDate(newDataArray, x0, 1), 
     d0 = newDataArray[i - 1], 
     d1 = newDataArray[i], 
     d = x0 - d0.fit > d1.fit - x0 ? d1 : d0; 

   focus.attr("transform", "translate(" + x(d.upr) + "," + y(d.fit) + ")"); 
   focus.select("text").text(Math.floor(d.fit));
 }
在第3行中,您正在使用
数据
数据在哪里?它应该是
newDataArray
对吗

这也应该出现在控制台日志中,您在开发时是否阅读了控制台日志

对,你有这个功能:

 function mousemove() {
         var x0 = x.invert(d3.mouse(this)[0]),
           i = bisectDate(data, x0, 1),
           d0 = newDataArray[i - 1],
           d1 = newDataArray[i],
           d = x0 - d0.i > d1.i - x0 ? d1 : d0;
         focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
         focus.select("text").text(Math.floor(d.fit));
       }
function mousemove() {
            var x0 = x.invert(d3.mouse(this)[0]),
                i = bisectDate(data, x0, 1),
                d0 = newDataArray[i-1],
                d1 = newDataArray[i],   
                d = x0 - d0.i > d1.i - x0 ? d1 : d0;
            focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
            focus.select("text").text(Math.floor(d.fit));
        }
function mousemove() {
   var x0 = x.invert(d3.mouse(this)[0]), 
     i = bisectDate(newDataArray, x0, 1), 
     d0 = newDataArray[i - 1], 
     d1 = newDataArray[i], 
     d = x0 - d0.fit > d1.fit - x0 ? d1 : d0; 

   focus.attr("transform", "translate(" + x(d.upr) + "," + y(d.fit) + ")"); 
   focus.select("text").text(Math.floor(d.fit));
 }
这根本不会运行。您正在将
d.i
d.fit
传递到
x
y
轴。什么是d.i?它不存在于您的数据中

我把这把小提琴放在一起:

您的
mousemove
功能无法正常工作,因为您无法正确转换焦点(圆圈)。什么id
d.i
?你需要做的是传递你正在使用的y轴,所以在这种情况下,d.fit如下:

d = x0 - d0.fit > d1.fit - x0 ? d1 : d0; 
然后你把它翻译成,
d.upr
在x和
d.fit
在y。完整的鼠标移动功能:

 function mousemove() {
         var x0 = x.invert(d3.mouse(this)[0]),
           i = bisectDate(data, x0, 1),
           d0 = newDataArray[i - 1],
           d1 = newDataArray[i],
           d = x0 - d0.i > d1.i - x0 ? d1 : d0;
         focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
         focus.select("text").text(Math.floor(d.fit));
       }
function mousemove() {
            var x0 = x.invert(d3.mouse(this)[0]),
                i = bisectDate(data, x0, 1),
                d0 = newDataArray[i-1],
                d1 = newDataArray[i],   
                d = x0 - d0.i > d1.i - x0 ? d1 : d0;
            focus.attr("transform", "translate(" + x(d.i) + "," + y(d.fit) + ")");
            focus.select("text").text(Math.floor(d.fit));
        }
function mousemove() {
   var x0 = x.invert(d3.mouse(this)[0]), 
     i = bisectDate(newDataArray, x0, 1), 
     d0 = newDataArray[i - 1], 
     d1 = newDataArray[i], 
     d = x0 - d0.fit > d1.fit - x0 ? d1 : d0; 

   focus.attr("transform", "translate(" + x(d.upr) + "," + y(d.fit) + ")"); 
   focus.select("text").text(Math.floor(d.fit));
 }
更新小提琴:

我想你从这里得到了一个例子:


这是一个如何工作的细分。在对你的观点做更多的事情之前,先阅读并理解它在做什么。最好能理解这一切,否则你就会陷入困境。提示:使用控制台日志

你能检查一下你的密码吗?它有语法问题,您正在使用未在给定代码中定义的变量,例如
newDataArray
?在SO上发布时,请尝试发布可由其他人运行的代码以查找错误。如果你喜欢附加css,我做了一个小动作,但它需要样式。现在开始工作:还有其他css吗?你刚刚用css覆盖了所有代码。请给你的问题一个描述性标题。但是这仍然不起作用。我会试着找出问题所在,这上面还有css吗?我已经编辑了我的问题,你的代码中有一些错误,我不知道你为什么把它们放在那里。你只是在模仿一个例子吗?你们是通过控制台调试的吗?很明显,它并没有记录错误,因为我给它传递了一个实际值。我通过了“I”,也就是1,所以它总是1。这说明了,不同的问题。此外,您还需要更新问题中的代码。您已经覆盖了它。您所创建的只是一个圆。您没有附加任何值