2015-03-18 1 views
1

У меня есть div, и я пытаюсь перетащить его по изображению внутри div. Ниже мой HTMLКак сделать div перетаскиваемым по изображению внутри

<div id="MainDiv"> 
    <img src="Images/Drag.png"/> 

<div>Test</div><div>Tes2</div> 
</div> 

Я сделал основной ДИВ перетаскиваться, но я хочу, чтобы перетащить с помощью drag.png изображения, который находится внутри maindiv. Как достичь этого .Please помочь мне в этом ..

+0

Измените свой селектор, который, как я предполагаю, составляет $ («MainDiv») до $ («MainDiv img»). И добавьте дополнительный код, чтобы показать, что вы пробовали до сих пор. –

ответ

4

Вы можете использовать handle -Option из перетаскиваемом-функции:

$("#MainDiv").draggable({ 
    handle: "img" 
}); 

Demo

Reference

draggable - handle

+0

Я попытался с ниже, но не работаю для меня $ ("# MainDiv") перемещаемого ({ курсора:. "Движение", ручки: "IMG", addClasses: ложь, оси: "х", appendTo: "тело", оснастки: верно, Revert: 'инвалид', старт: функция() { $ (это) .data ("origPosition", $ (это) .position());} }); –

+0

@ sandeep.mishra Что не работает и что вы ожидаете? см. [demo] (https://jsfiddle.net/kn8zjp0L/) – empiric

+0

Извините эмпирический. Его работа. Большое спасибо. Я пытался с droppable, а затем перетащил. Теперь он работает, когда я отменил заказ. –

0

Для тех, кто не имеет nt использует jQuery UI library.

JSFiddle

HTML

<div id="movalbe"></div> 

CSS

#movable { 
    cursor: move; 
    width:70px; 
    height:70px; 
    background:black; 
    margin:2px; 
    float:left; 
} 
#movalbe:active { 
    background: grey; 
} 

JS

$('#movable').on('mousedown', function (e) { 
    $(this).addClass('active'); 
    var oTop = e.pageY - $('.active').offset().top; 
    var oLeft = e.pageX - $('.active').offset().left; 
    $(this).parents().on('mousemove', function (e) { 
     $('.active').offset({ 
      top: e.pageY - oTop, 
      left: e.pageX - oLeft 
     }); 
    }); 
    $(this).on('mouseup', function() { 
      $(this).removeClass('active'); 
    });  
    return false;  
});