Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/441.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 Firefox 24.0 onclick没有向正确的目标开火_Javascript_Firefox_Html_Svg_Onclick - Fatal编程技术网

Javascript Firefox 24.0 onclick没有向正确的目标开火

Javascript Firefox 24.0 onclick没有向正确的目标开火,javascript,firefox,html,svg,onclick,Javascript,Firefox,Html,Svg,Onclick,我最近在Firefox上遇到了一些重大问题。我的代码在Chrome中运行平稳,但Firefox似乎在理解我点击的内容时遇到了一些问题。你们听说过这个吗?我基本上在div中有一堆SVG。div有一个onclick事件来调用一个函数,该函数确实会启动,但在错误的div上。因此,我单击右侧的一个div,左侧的一个div接收单击 下面是javascript 这是HTML 它生成这些元素并在整个页面中定位它们,单击时,应该会出现一个包含元素信息的框。但其他元素似乎声称是事件的目标,尽管我点击了离它们几

我最近在Firefox上遇到了一些重大问题。我的代码在Chrome中运行平稳,但Firefox似乎在理解我点击的内容时遇到了一些问题。你们听说过这个吗?我基本上在div中有一堆SVG。div有一个onclick事件来调用一个函数,该函数确实会启动,但在错误的div上。因此,我单击右侧的一个div,左侧的一个div接收单击

下面是javascript

这是HTML

它生成这些元素并在整个页面中定位它们,单击时,应该会出现一个包含元素信息的框。但其他元素似乎声称是事件的目标,尽管我点击了离它们几百像素远的地方

<div id="6-084" class="room" fullname="John Smith" phonenum="None" pcname="Unknown" wallplatenum="Unknown" onclick="displayInfo(event)" style="height: 72px; width: 96px; position: absolute; left: 753px; top: 236px; opacity: 1;">
    <svg id="6-084-svg" style="-webkit-backface-visibility: hidden;" class="room">
        <g id="6-084-svg-g">
            <path style="fill:none; stroke: black; stroke-width: 2;" d="M 95,1 L 95,51 Q 80,51 80,66 L 95,66 L 95,71 L 1,71 L 1,1 Z "></path>
        </g>
    </svg>
    <div id="6-084 divP" style="position: absolute; z-index: 2; top: 20.5px; left: 34px;">
        <p id="6-084 P" style="text-align:center;">Name</p>
    </div>
</div>

名称

当您单击标记为“54”的SVG并在SVG上触发标记为“57”的SVG时,您将清楚地看到我所说的内容。如果您单击包含“54”的p标记,它也可以正常启动。所以我猜这与SVG有关

有什么想法吗

(另外,我知道所有内容都未对齐,对此我深表歉意。我只是重写了它是如何创建路径标记的,这样在放置路径标记时就不必担心div的旋转,现在所有内容都放错了位置。)

添加

svg.setAttribute("width", "100%");
svg.setAttribute("height", "100%");
在每一行之后

var svg = document.createElementNS("http://www.w3.org/2000/svg", "svg");

这似乎解决了问题。目前,您的代码需要依赖webkit bug才能正常工作。

真奇怪。。。我只是觉得SVG会自动将这些设置作为默认设置,因为这就是它在Chrome中的工作方式。非常感谢!然而,在那里你并不孤单。请注意,所有的要点都是正确的,这意味着未设置宽度并不能达到您认为应该达到的效果。