如何使用jquery拖放+下拉到li标签

时间:2015-12-31 09:59:20

标签: css jquery-ui twitter-bootstrap-3

我正在使用以下HTML项目。 li标签位于引导标签结构中。我认为这与尺寸有关,因为我的可拖动类宽200像素,li标签宽100像素。

   <li id="dropmessages1"><a href="#id" data-toggle="tab">Cat 1 </a></li>
   <li id="dropmessages2"><a href="#id" data-toggle="tab">Cat 2 </a></li>

   <div id="1" class="dragable"><a href="" class="list-group-item"></a></div>
   <div id="2" class="dragable"><a href="" class="list-group-item"></a></div>

以及以下jquery代码。

   $( init );

   function init() {
   $('.dragable').draggable({
   cursor: 'move',
   revert: true
   });

   $('#dropmessages1').droppable({
   drop: handleDropEvent
   } );

   $('#dropmessages2').droppable({
   drop: handleDropEvent
   } );
   }


  function handleDropEvent( event, ui ) {

  var draggable = ui.draggable;
  alert( 'The message  with ID "' + draggable.attr('id') + '" was dropped onto me!' );
  }

我可以拖动&#34;可拖动&#34;物品,但我不能把它们放在LI物品上。是否可以将项目放到li标签上?

4 个答案:

答案 0 :(得分:0)

您可以查看以下代码:

   <!DOCTYPE HTML>
<html>
<head>
<style>
#div1 {width:350px;height:70px;padding:10px;border:1px solid #aaaaaa;}
</style>
<script>
function allowDrop(ev) {
    ev.preventDefault();
}

function drag(ev) {
    ev.dataTransfer.setData("text", ev.target.id);
}

function drop(ev) {
    ev.preventDefault();
    var data = ev.dataTransfer.getData("text");
    ev.target.appendChild(document.getElementById(data));
}
</script>
</head>
<body>

<p>Drag the W3Schools image into the rectangle:</p>

<div id="div1" ondrop="drop(event)" ondragover="allowDrop(event)"></div>
<br>
<img id="drag1" src="img_logo.gif" draggable="true" ondragstart="drag(event)" width="336" height="69">

</body>
</html>

答案 1 :(得分:0)

revert

中删除draggable选项
$('.dragable').draggable({
   cursor: 'move'
   //revert: true //No need of this
});

<强> DEMO

答案 2 :(得分:0)

删除可拖动

中的还原选项
$('.dragable').draggable({
   cursor: 'move',
  // revert: true
   });
  

如果使用还原,对象会从原来的位置返回到同一位置   拖动。

答案 3 :(得分:0)

我用过

    $('#dropmessages1').droppable({
    tolerance: 'pointer',
    drop: handleDropEvent
    } );

这允许将较大区域拖动到较小区域。