Dav*_*son 5 html javascript jquery svg jquery-svg
嗨,我正在尝试以SVG格式从inkscape图像创建一些交互式内容.我正在通过http://keith-wood.name/js/jquery.svg.js上的 svg.load加载一个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>
Run Code Online (Sandbox Code Playgroud)
这就是我最终做到的,我通过 Chrome dev 检查了元素。工具并找到 SVG 中用作目标侦听器的元素的名称 (#layer1)。使用下面的代码我可以在两个不同的 SVG 之间来回切换
function drawOpenSwitch(svg){
var closed=false;
var changeSwitch = function (){
$('#layer1').click(function() {
if(!closed){
svg.clear();
switchElement=svg.load('./3phase_switch_closed.svg', {onLoad: changeSwitch, addTo: true, changeSize: true});
}else{
svg.clear();
switchElement=svg.load('./3phase_switch.svg', {onLoad: changeSwitch, addTo: true, changeSize: true});
}
closed=!closed;
})};
var switchElement=svg.load('./3phase_switch.svg', {onLoad: changeSwitch, addTo: true, changeSize: true});
}
$(window).load(function(){
$(function() {
$('#svgbasics').svg({onLoad: drawOpenSwitch});
});
Run Code Online (Sandbox Code Playgroud)
| 归档时间: |
|
| 查看次数: |
1832 次 |
| 最近记录: |