изображения в перетаскиваемом div перетаскиваются как группа

#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, еще раз большое спасибо!