我一直在使用带有内联SVG和javascript动画的HTML5文档.
当用户点击任何地方时,我想弹出一个方框,当用户点击某个不是方框的地方时,我希望该方框能够消失.这意味着我无法使用$(window).click(),哪个有效.
我已经尝试通过给出类名和使用来选择顶部的SVG $(".svgclassname").click(),但这似乎不起作用.也没有选择个别的$("#svgname").click().
问题是什么?
(当我更换$(".eyesvg")时$(window),当用户点击窗口中的任何位置时,光标附近会出现一个蓝色框.)
是否可以像这样在 jQuery 中创建一个 SVG 标签:
var dragSVG = $('<svg xmlns="http://www.w3.org/2000/svg"></svg>');
dragSVG.append('<rect x="0" y="0" width="20" height="20" style="fill:red"></rect>');
Run Code Online (Sandbox Code Playgroud)
如果是这样,如何访问 DOM?IE。如果是 HTML,我会执行以下操作:
return dragSVG.html();
Run Code Online (Sandbox Code Playgroud)
但由于它不是 HTML,这会引发异常......或者我是否错过了一些完全基本的东西!?
编辑:
我将尝试更清楚地解释我想要实现的目标;我有一个代表 SVG 'item' 的按钮,可以将其拖到主 SVG 画布上。当用户开始拖动时,我想在鼠标下显示 SVG 'item' 以提供用户反馈。当用户将它放到画布上时,我需要将“项目”移动到主画布上。
$('#testBtnDrag').draggable({
opacity: 0.7,
revert: 'invalid',
cursorAt: { top: 0, left: 0},
helper: function (event) {
var dragSVG = '<svg xmlns="http://www.w3.org/2000/svg" width="20" height="20"><rect x="0" y="0" width="20" height="20" style="fill:red"></rect></svg>';
return dragSVG;
}
});
// I can't attach the droppable to the SVG tag directly, IE / FF don't work …Run Code Online (Sandbox Code Playgroud)