您好,我正在尝试从 SVG 格式的 inkscape 图像创建一些交互式内容。 我正在通过 svg.load 从 http://keith-wood.name/js/jquery.svg.js 加载 SVG 文件
我想为加载的 SVG 添加一个 onclick 监听器,这样我就可以在单击它后加载另一个 SVG。我该怎么做呢?下面评论中的方法失败了。
<script type='text/javascript'>
//<![CDATA[
function drawSwitch(svg) {
var switchElement = svg.load('./3phase_switch.svg', {
addTo: true,
changeSize: true
});
//switchElement.addEventListener("click", return function(){switchElement.setAttributeNS(null, "fill", "green");}, false);
}
$(window).load(function () {
$(function () {
$('#svgbasics').svg({
onLoad: drawSwitch
});
});
}); //]]>
</script>
最佳答案
由于该元素是在页面加载时呈现的,因此您应该监听对已经存在的父元素的点击;例如文档
:
// Use this same as $(document).ready()
jQuery(function( $ ){
// Listen for a click on the document but get only clicks coming from #svgbasics
$(document).on('click', '#svgbasics', function(){
// this === #svgbasics element
drawSwitch( this );
});
});
关于javascript - 单击时用另一个 SVG 元素替换,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/20613829/