Warning: file_get_contents(/data/phpspider/zhask/data//catemap/5/url/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript D3可以';t将样式设置为appended对象_Javascript_Jsp_Spring Mvc_D3.js_Styles - Fatal编程技术网

Javascript D3可以';t将样式设置为appended对象

Javascript D3可以';t将样式设置为appended对象,javascript,jsp,spring-mvc,d3.js,styles,Javascript,Jsp,Spring Mvc,D3.js,Styles,通常,当您在D3.js中附加一个对象,并希望定义一个特定的可视化(例如,显示在另一个对象顶部的信息框)时,您可以设置一个样式。就我而言,我正在尝试以下方法: ... .on("mouseover", function (d, i) { graph.append("div") .attr("class","info-box") // info-box is defined with position: absol

通常,当您在D3.js中附加一个对象,并希望定义一个特定的可视化(例如,显示在另一个对象顶部的信息框)时,您可以设置一个样式。就我而言,我正在尝试以下方法:

...
.on("mouseover", function (d, i) {
           graph.append("div")
                .attr("class","info-box")
                // info-box is defined with position: absolute
                .style("top", height - (yV * d))
                .style("left", (xV * i))
                .text("INFO")
}
...
因此,如果我在我用此代码定义的一个对象上进行鼠标悬停(假设它是一系列垂直条中的第二个对象),应该会出现一个包含以下代码的框:

<div class="info-box" style="top: 30; left: 10">
    INFO
</div>

信息
问题是,出于某种原因,当代码生成框时,它没有设置我定义的样式,事实上,属性“style”根本没有出现,考虑到我希望这个框出现在我悬停的条的顶部,这是非常烦人的

这在我在SpringMVC中编写的代码中发生。更准确地说,我从一个接收两个参数的自定义标记生成javascript代码,然后它在jsp中“呈现”,并使用这些参数调用它。我不知道这是否有什么关系,但我很肯定有两件事:

  • 与其他javascript文件没有“冲突”,因为d3是我在代码中使用的唯一.js
  • jsp中生成的javascript代码与普通html页面中预期的完全相同
  • 有什么解决办法吗?Spring中的一些配置阻止我使用HTML中嵌套的样式?我真的很想得到一个答案,因为它让我抓狂,我需要尽快修复它

    最后两个注意事项:

  • 我已经试过使用attr(“style”,“top:+(height-(yV*d))+“left”+(xV*I)+“;”),但它不起作用(
  • 使用类不是一个选项,因为这在很大程度上取决于我悬停的对象的值,并且我不能为每个可能的场景创建一个类(在这样做之前我会割断我的血管)

  • 您只需要添加单元,在本例中为“px”,以便设置这些css属性

    .on("mouseover", function (d, i) {
           graph.append("div")
                .attr("class","info-box")
                // info-box is defined with position: absolute
                .style("top", (height - (yV * d)) + 'px')
                .style("left", (xV * i) + 'px')
                .text("INFO")
    

    …我不知道我的原始代码在html中是如何工作的,而不是在jsp中,但是,嘿,最后它非常简单…很抱歉问了一些愚蠢的问题…但是我总是在没有定义px的情况下设置top和left属性。你可以在jQuery中使用px来完成它,这会为你做一些额外的解释,但不能使用d3。