求助:在IE下改变svg元素的xlink:href属性导致IE卡死的问题

可乐波波 2015-06-08 08:54:46
<!DOCTYPE html>
<html>

<head>
<meta charset="utf-8">
<title></title>
<script type="text/javascript" src="js/jquery-2.1.4.min.js"></script>
</head>

<body>
<svg>
<defs>
<symbol>
<symbol id="GroundDisconnector:jddz@0" viewBox="0 0 16 32" preserveAspectRatio="none">
<line fill="#0000FF" stroke="#9E9E9E" stroke-width="1" stroke-opacity="1" x1="7" y1="29" x2="9" y2="29" />
<line fill="#0000FF" stroke="#9E9E9E" stroke-width="2" stroke-opacity="1" x1="8" y1="0" x2="8" y2="3" />
<ellipse fill="none" stroke="#9E9E9E" stroke-width="1" stroke-opacity="1" cx="8" cy="16" rx="2" ry="2" />
<line fill="#0000FF" stroke="#9E9E9E" stroke-width="1" stroke-opacity="1" x1="4" y1="3" x2="12" y2="3" />
<line fill="#0000FF" stroke="#9E9E9E" stroke-width="2" stroke-opacity="1" x1="1" y1="7" x2="7.5625" y2="14.125" />
<line fill="#0000FF" stroke="#9E9E9E" stroke-width="2" stroke-opacity="1" x1="8" y1="18" x2="8" y2="23" />
<line fill="#0000FF" stroke="#9E9E9E" stroke-width="1" stroke-opacity="1" x1="2" y1="23" x2="14" y2="23" />
<line fill="#0000FF" stroke="#9E9E9E" stroke-width="1" stroke-opacity="1" x1="5" y1="26" x2="11" y2="26" />
<rect x="0" y="0" width="16" height="32" fill="#FFFFFF" opacity="0" />
</symbol>
<symbol id="GroundDisconnector:jddz@1" viewBox="0 0 16 32" preserveAspectRatio="none">
<line fill="#0000FF" stroke="#C8C8C8" stroke-width="1" stroke-opacity="1" x1="7" y1="29" x2="9" y2="29" />
<line fill="#0000FF" stroke="#FF0000" stroke-width="2" stroke-opacity="1" x1="8" y1="0" x2="8" y2="14" />
<ellipse fill="none" stroke="#FF0000" stroke-width="1" stroke-opacity="1" cx="8" cy="16" rx="2" ry="2" />
<line fill="#0000FF" stroke="#FF0000" stroke-width="1" stroke-opacity="1" x1="4" y1="3" x2="12" y2="3" />
<line fill="#0000FF" stroke="#FF0000" stroke-width="2" stroke-opacity="1" x1="8" y1="18" x2="8" y2="23" />
<line fill="#0000FF" stroke="#C8C8C8" stroke-width="1" stroke-opacity="1" x1="5" y1="26" x2="11" y2="26" />
<line fill="#0000FF" stroke="#C8C8C8" stroke-width="1" stroke-opacity="1" x1="2" y1="23" x2="14" y2="23" />
<rect x="0" y="0" width="16" height="32" fill="#FFFFFF" opacity="0" />
</symbol>
</symbol>
</defs>
<g id="GroundDisconnectorClass">
<rect x="0" y="0" width="16" height="32" fill="Black" />
<g id="5">
<use x="0" y="0" width="16" height="32" xlink:href="#GroundDisconnector:jddz@0" class="KV220" />
<UT.shapedata>
<ShapeRef TextID="2308" />
<CN_Ref PinNum="1" ObjectID="10_0" />
<PowerData StationName="" PointName="2211-37" Description="220kV 2211-37接地刀闸" />
</UT.shapedata>
</g>

</g>
</svg>
<script>
$("#5").click(function(e) {
currentId = $(this).attr("id");
var href = $("#" + currentId).children("use").attr("xlink:href");
var value = href.split("@")[1];
var newValue = value == "1" ? "0" : "1";
$("#" + currentId).children('use').attr('xlink:href', href.split("@")[0] + "@" + newValue);
});
</script>
</body>

</html>



jQuery文件请自己添加一下,在FF和chrome下没问题,有没有高手有解决方法?
...全文
261 5 打赏 收藏 转发到动态 举报
写回复
用AI写文章
5 条回复
切换为时间正序
请发表友善的回复…
发表回复
可乐波波 2015-06-17
  • 打赏
  • 举报
回复
苦逼的楼主还没找到解决方法,再次人工顶置
可乐波波 2015-06-12
  • 打赏
  • 举报
回复
人工顶置!!!!
可乐波波 2015-06-08
  • 打赏
  • 举报
回复
大牛在哪里啊?
香蕉猪 2015-06-08
  • 打赏
  • 举报
回复
在IE中attr的修改会失败,楼主自己查看下,网上很多相关资料教了如何处理。这里不多写代码。

87,921

社区成员

发帖
与我相关
我的任务
社区描述
Web 开发 JavaScript
社区管理员
  • JavaScript
  • 无·法
加入社区
  • 近7日
  • 近30日
  • 至今
社区公告
暂无公告

试试用AI创作助手写篇文章吧