使用可拖动图像更改droppable的图像源

时间:2014-11-24 10:34:14

标签: jquery jquery-ui draggable jquery-ui-draggable jquery-ui-droppable

我有一个<div>包含三个带有“droppable”类的图像。该表有四行,图像位于最后一个<td>元素内。

HTML看起来像这样:

<div id="box_container">
  <img id="empty_box1" class="droppable" src="images/tom.png" />
  <img id="empty_box2" class="droppable" src="images/tom.png" />
  <img id="empty_box3" class="droppable" src="images/tom.png" />
</div>

<td><img id="" class="draggable" src="images/image1.png" /></td>

以下是如下布局的图片:

enter image description here

表格中的图像可拖动到表格上方的空白框中。这些框由一个白色空间图像组成,我希望该图像的来源更改为已放入空框中的图像。

以下是我目前阶段的代码:

$(document).ready(function () {
  $(".draggable").draggable({
    revert: true,
    snap: ".droppable",
    snapMode: "inner"
  });
  $("#tabellen").tablesorter();
  $(".droppable").droppable({
    accept: ".draggable",
    drop: function () {
        console.log(this);
        var new_pic = $('.draggable').attr('src');
        $(this)
            .attr('src', new_pic)
            .attr('width', 150)
            .attr('height', 150)
            .addClass('zoomable');
    }
  });
});

1 个答案:

答案 0 :(得分:1)

drop事件回调中,您可以通过第二个参数的draggable属性(通常命名为ui)访问已删除的可拖动元素。你可以它的来源复制到droppable,如下所示:

$(".draggable").draggable({
  helper: "clone",
  revert: "invalid"
});
$(".droppable").droppable({
  drop: function(event, ui) {
    $(this).attr("src", ui.draggable.attr("src"));
  }
});
img {
  width: 100px;
  height: 100px;
}
.draggable {
  background: hotpink;
  float: left;
}
.droppable {
  float: right;
  background: dodgerblue;
}
<link href="//code.jquery.com/ui/1.11.2/themes/smoothness/jquery-ui.css" rel="stylesheet" />
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<script src="//code.jquery.com/ui/1.11.2/jquery-ui.js"></script>
<img class="draggable" src="http://i49.tinypic.com/28vepvr.jpg" />
<img class="droppable" src="" alt="Drop Here!" />