Перетаскиваемый элемент в VML застревает при изменении размера (высота, ширина) в IE 8 - PullRequest
2 голосов
/ 24 февраля 2012

У меня проблема с VML (который я использую как запасной вариант для svg)

Я использую перетаскиваемый пользовательский интерфейс jQuery, чтобы позволить пользователю перемещать элемент.Проблема возникает, когда я изменяю размер изображения (которое является av: image), изменяя атрибут style высоты и ширины.

В этот момент происходит то, что элемент застревает в левом верхнем углу его контейнера.и больше не может быть перетащен.

Странно то, что когда я спрашиваю о позиции (сверху, слева) перетаскиваемого элемента в консоли javascript, я получаю значение, и эти значения меняются, когда я нажимаю и перетаскиваю- даже если элемент не движется визуально ...

Кто-нибудь сталкивался с этой проблемой раньше?

Здесь я могу изменить размер моего элемента.

$($image)
    .css({
        'width' : zoomInPx_width + "px",
        'height' : zoomInPx_height + "px"
    });

Draggable установлен довольно прямо вперед

$($image).draggable({
    drag: function () { /*callback here*/ }
})

Спасибо!

Ответы [ 2 ]

3 голосов
/ 24 февраля 2012

В конце концов мне удается сделать эту работу.

Кажется, что VML падает в IE 8, когда мы меняем размер перетаскиваемого элемента. Итак, мне пришлось уничтожить элемент и воссоздать его с нуля, когда происходит скольжение ...

Это не очень эффективно, но это единственное исправление для меня здесь.

Кстати, .detach () не работал, вы должны уничтожить его и воссоздать с нуля.

Вы также можете получить некоторую информацию: http://www.acumen -corp.com / Blog / tabid / 298 / EntryId / 26 / Using-jqueryRotate-ui-draggable-and-resizable-images-in-IE7 IE8-и-любой-другой-browser.aspx

2 голосов
/ 16 ноября 2012

в моем приложении я использовал этот код:

var $cloned_image = $($image).clone().get(0);
$($image).remove();

// need add draggable again
$($cloned_image).draggable();

document.getElementById('k').appendChild($cloned_image);
$image = $cloned_image;
...