#jquery #image #move
#jquery #изображение #переместить
Вопрос:
я знаю, что делаю что-то глупое, и был бы очень признателен за совет.
я динамически создал div в ряд с четырьмя изображениями, и каждое изображение должно быть индивидуально перетаскиваемым.
созданные мной div выглядят следующим образом:
<div id="imageAreaDiv0" class="drag ui-draggable">
<div id="uconConnectedToUserName02" class="drag ui-draggable">
<img class="drag ui-draggable" src="UserThumbs_G-L/a/r/harrytushie" alt="harrytushie" title="harrytushie">
</div>
<div id="uconConnectedToUserName03" class="drag ui-draggable">
<img class="drag ui-draggable" src="UserThumbs_G-L/o/e/joeblow" alt="joeblow" title="joeblow">
</div>
<div id="uconConnectedToUserName04" class="drag ui-draggable">
<img class="drag ui-draggable" src="Images/defaultConnectionThumbnail.png" alt="sampleuser000" title="sampleuser000">
</div>
<div id="uconConnectedToUserName05" class="drag ui-draggable">
<img class="drag ui-draggable" src="Images/defaultConnectionThumbnail.png" alt="sampleuser001" title="sampleuser001">
</div>
</div>
css выглядит следующим образом:
.drag {
margin-right:5px;
display: inline-block;
position: relative;
cursor: move;
}
и перетаскивание jQuery выглядит следующим образом:
$(".target").css({ opacity:"0.5" });
$(".drag").draggable({
zIndex: 3});
$(".target").droppable({
cursor: 'move',
drop: function(event, ui) {
var message = event.target.id;
var connectName = $(ui.draggable).attr('alt');
if(event.shiftKey) {
var actionTaken = copyConnection(connectName);
} else {
var actionTaken = moveConnection(connectName);
}
document.getElementById('errorNotificationArea').innerHTML =
'<span style="color:red;font-size:12px;"><br>Connection ' connectName ' was ' actionTaken ' to category ' message '<br><br></span>';
}
})
})(jQuery);
но когда я перетаскиваю изображение в эту строку (или любую строку с более чем одним изображением), все изображения в этой строке перемещаются как блок; т. Е. Все они перемещаются одновременно.
если я отключу перетаскивание «обертки» div (id= imageAreaDiv0), изображения не будут перетаскиваться.
если бы кто-нибудь мог сказать мне, что я делаю не так, я был бы очень признателен.
Спасибо! twistOneUp
Ответ №1:
Удалите drag
класс из DIV
s.
Или перепишите вашу функцию jQuery на $('img.drag').draggable()
.
Комментарии:
1. извините, не хотел быть грубым … в первый раз пытаюсь ответить на оставленный для меня ответ, n00b в stackoverflow и все такое… @ richardneililagan — я попытался удалить class=’drag ui-draggable’ из imageAreaDiv0, что сделало все изображения в блоке недоступными для перетаскивания. тот же результат произошел, когда я указал «img.drag» в jQuery, и тот же результат произошел, когда я удалил «перетаскивание» на div, которые переносят изображение.
Ответ №2:
Вы вызываете draggable()
все элементы с классом .drag
. Ваш контейнер также имеет класс .drag
(как и ваши изображения). Итак, ваш контейнер перетаскивается (со всеми изображениями внутри него).
Комментарии:
1. то же, что и первый ответ на richardneililagan, выше. удаление class= ‘drag ui-draggable’ из div-оболочки приводит к тому, что все содержащиеся в нем изображения становятся недоступными для перетаскивания. я ценю совет, хотя! Спасибо!
2. Взгляните на эту скрипку: ( jsfiddle.net/swatkins/JJZCm ) — работает для меня в IE9, FF6 и Chrome 14 — я удалил
drag
класс из элемента контейнера (оставив класс ui-перетаскиваемым)3. привет, сваткинс, я хотел бы сказать спасибо! для jsfiddle… ваш работает нормально, я копирую ваш код в свой PHP-скрипт, ваш перетаскивается, мой — который генерируется на лету, но выглядит идентично — нет. так что, вероятно, это как-то связано с тем, как оно генерируется. aar, еще раз большое спасибо!