【发布时间】:2021-02-03 17:16:26
【问题描述】:
我在使用 SVG 中内置的锚元素(显示为 <object>)时遇到了很多麻烦。我正在尝试使用 jQuery 来定位对象中的锚元素,以便在单击时切换其各自的内容。
如果您看一下我的示例,我的 SVG 中内置了 3 个链接(它们的绿色阴影比其他链接浅)。我使用 InkScape 来创建我的 SVG 图像,并且在链接的浅绿色区域上只是具有分别等于“#operable-shades”、“#gutters-downspouts”和“#gable-pediments”的 href 属性的形状。
我的 SVG 在我的页面上显示得很好(使用 <object> 标签),当我将鼠标悬停在我创建的链接上时,我得到了原始对象数据 URL,并在其末尾附加了我指定的锚点(例如'https ://example.com/wp-content/uploads/GHB_Interface-v0.1.svg#gable-pediments')当我期望它是'https://example.com/#gable-pediments'时。/#gable-pediments' p>
<script type="text/javascript">
jQuery(document).ready(function($) {
$('.ghb_toggle').hide()
$('a[href^="#"]').on('click', function(event) {
var target = $(this).attr('href');
$(target).toggle();
});
});
</script>
.ghb_toggle {
display:none;
}
<object type="image/svg+xml" data="https://example.com/wp-content/uploads/test.svg" width="500" height="400"></object>
<div id="gable-pediments" class="ghb_toggle">
<p>Content 1</p>
</div>
<div id="gutters-downspouts" class="ghb_toggle">
<p>Content 2</p>
</div>
<div id="operable-shades" class="ghb_toggle">
<p>Content 3</p>
</div>
如何修改我的 jQuery 以便能够成功地与我的 <object> 中的锚元素交互以隐藏/显示具有唯一标识符的相应内容?
【问题讨论】:
-
我认为通过对象元素导入时不能选择 svg 标签。就像使用图像时不能一样。
-
您可以这样做,但前提是
-
不幸的是,图像本身是巨大的,所以我什至不能把它变成一个数据 URL 来构建一个答案,所以我们仍然需要一个 minimal reproducible example ,即使用一个小测试的东西SVG 文件。
-
@RobertLongson 我今天学到了一些东西。谢谢!
标签: javascript html jquery svg anchor