1

这是我用来使用 jQuery++ 实现拖放的代码。

<div id="parent">
  <div id="left">
     <div class="ab">1</div>
     <div class="ab">2</div>
     <div class="ab">3</div>
     <div class="ab">4</div>
     <div class="ab">5</div>
  </div>
  <div id="right"></div>
</div>


$('.ab').on({
  'draginit': function (ev, drag) {
    drag.ghost();
  }
});

$('#right').on({
 "dropover": function (ev, drop, drag) {
    $(this).addClass('highlight');
 },
    "dropout": function (ev, drop, drag) {
    $(this).removeClass('highlight');
 },
    'dropon': function (ev, drop, drag) {
    $(this).append(drag.element.clone(true, true));
    $(this).removeClass('highlight');
 }
});

但是当我拖放到右侧后拖回原点时,就会出现问题。它正在添加滚动条并在容器内拖动。我该如何解决这个问题?

小提琴:http: //jsfiddle.net/cjcg4/7/

4

1 回答 1

1

我不熟悉 jQuery++,但我看了一下你的小提琴。

看起来您没有将dropover, dropout,dropon事件绑定到您的#left div,如果您希望它的行为类似于#right,则需要这样做。

至于滚动,只需overflow:scroll从您的#right div 中删除该属性。

这是一个新的小提琴:http: //jsfiddle.net/mnoble01/cjcg4/8/

发生了什么变化:

  1. 使用 selector$('#right,#left')绑定上面的三个事件。
  2. overflow:scroll从 #right div 中删除css 属性
于 2013-09-13T15:32:45.567 回答