过去几天我一头撞墙撞墙,无处可去,所以我只想找到某种确认,我试图做的事实际上是可以做到的。 ...JQuery和SVG拖放
我有一个SVG页面与DIV。我希望能够点击SVG的一个组件并拖动它。理论上很简单。 我有一个凌乱的原始JavaScript版本,但我试图在JQuery中做到一致性。
我有以下的,至极拖围绕整个容器DIV:
* VAR svgName = “/mySvg.svg”;
$(document).ready(function($) {
$('#svgDiv').svg();
var svg = $('#svgDiv').svg('get');
svg.load(svgName,
function() {
$('#svgDiv').draggable().bind('mousedown', function(event, ui) {
$(event.target.parentElement).append(event.target);
}).bind('drag', function(event, ui) {
event.target.setAttribute("transform", "translate("+event.clientX+","+event.clientY+")");
});
});
});
*
我改成了这个这个,而且我认为他会得到通过它的ID的SVG的元素,但这并没有什么。就好像JQuery无法看到“内部”(需要更好的单词)DIV。 *
var svgSource = "/mySvg.svg";
$(document).ready(function($) {
$('#svgDiv').svg();
var svgObj = $('#svgDiv').svg('get');
svgObj.load(svgSource,
function() {
var svgObj2 = $('#svgDiv').svg('get');
var svgElem = svgObj2.getElementById('pathIdOne');
$(svgElem).draggable().bind('mousedown', function(event, ui) {
$(event.target.parentElement).append(event.target);
}).bind('drag', function(event, ui) {
//event.target.setAttribute("transform", "translate("+event.clientX+","+event.clientY+")");
event.target.setAttribute('x', ui.position.left);
event.target.setAttribute('y', ui.position.top);
});
});
});
*
任何人都可以看到任何昭然若揭需要改变,可以这样做,或者这只是完全错误的?
没有那么多svg元素具有'x'和'y'属性,您可能会因'transform'属性而带来更多运气。 – 2012-07-17 14:44:29