#javascript #css #jquery-ui #drag-and-drop
#javascript #css #jquery-ui #перетаскивание
Вопрос:
это мой код :
<style type="text/css">
#draggable { width: 100px; height: 100px; padding: 0.5em; float: left; margin: 10px 10px 10px 0;
border:1px solid #DDDDDD;
color:#333333;
background:#F2F2F2;
}
#droppable { width: 150px; height: 150px; padding: 0.5em; float: left; margin: 10px;
border:1px solid #E78F08;
color:#FFFFFF;
font-weight:bold;
background:#F6A828;
}
#droppable.highlight{
background:#FFE45C;
}
</style>
<div class="demo" style="margin-left:35%;margin-top:10%;cursor:pointer;">
<div id="draggable">
<p>Drag me to my target</p>
</div>
<div id="droppable" >
<p>Drop here</p>
</div>
</div><!-- End demo -->
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
<script type="text/javascript" src="jquery-ui-1.8rc3.custom.min.js"></script>
<script type="text/javascript">
$(function() {
$("#draggable").draggable();
$("#droppable").droppable({
drop: function(event, ui) {
$(this).addClass('highlight').find('p').html('Dropped!');
$(this).append(ui.draggable.draggable( "destroy" ))
}
});
});
я хочу перетащить div в другой
и когда я перетаскиваю stoped , он показывает :
похоже, что это не «в» удаляемый div ,
потому что перетаскиваемый div автоматически добавляет некоторый css-стиль при использовании «.draggable()»
element.style {
left:133px;
position:relative;
top:38px;
}
я могу очистить css, но есть ли у jquery-ui способ сделать это?
Ответ №1:
Не совсем уверен, чего вы хотите достичь — немного больше деталей помогло бы, но вот пример…
Итак, вот пример, который «вставляет» перетаскивание в drop — css применяется к вспомогательному элементу, а не к элементу.
$("#draggable").draggable({
revert: 'invalid',
helper: 'clone',
zIndex: 350,
start: function() { $(this).toggle(); },
stop: function() { $(this).toggle(); }
});
$("#droppable").droppable({
accept: '#draggable',
drop: function(event, ui) {
$(this).addClass('highlight').find('p').html('Dropped!');
$(ui.draggable).draggable("destroy").appendTo($(this));
}
});
- Редактировать —
Я углубился в это немного глубже, и причина, по которой мой опубликованный код работает в отличие от вопроса, заключается в опции «помощник: клонирование» в перетаскиваемом. Когда используется помощник, он применяет левый / верхний css к помощнику, а не к фактическому элементу, который мы перетаскиваем.
Переключатели start / stop в перетаскиваемом элементе заставляют исходный элемент исчезать, но снова включают его при его удалении — для имитации визуального отображения по умолчанию в $().draggable().
Кроме того, я бы был осторожен с символами float, которые у вас есть в вашем css, — это также может дать странные результаты.