0

http://jsbin.com/ituxij/4/edit

我正在尝试使用 Jquery 将图像拖放到 div 我有一个功能

<div id="trash" class=""> Trash</div>

$trash.droppable({
    accept: "#gallery > li",
    activeClass: "ui-state-highlight",
    drop: function(event, ui) {
        var $droppableId = $(this).attr("id");

        deleteImage($droppableId, ui.draggable);
    }
});

在这种情况下 $droppableId = 垃圾或我的 div 的名称。

我打电话

function deleteImage($droppableId, $item) {
    $item.fadeOut(function() {
        alert($droppableId);
        var $list = $("ul", $droppableId).length ? $("ul", $droppableId) : $("<ul class='gallery ui-helper-reset'/>").appendTo($droppableId);

        $item.find("a.ui-icon-trash").remove();
        $item.append(recycle_icon).appendTo($list).fadeIn(function() {
            $item.animate({
                width: "48px"
            }).find("img").animate({
                height: "36px"
            });
        });
    });
}

该函数提醒垃圾,这是正确的,但是当我尝试将“垃圾”传递给 .appendTo 方法时,它的工作方式与我简单地输入垃圾不同。

4

2 回答 2

2

$droppableId只是元素的 id,而不是选择器或元素本身。

尝试.appendTo($('#'+$droppableId));.appendTo('#'+$droppableId);

作为一个侧面,我会尽量避免$在使用 jquery 时在变量的开头使用,它看起来有点令人困惑。

于 2013-01-18T00:05:48.780 回答
0
$("#trash").droppable({      
   accept: "#gallery > li",      
   activeClass: "ui-state-highlight",    
   drop: function( event, ui ) {   
   var $droppableId = $(this).attr("id");

  deleteImage($droppableId, ui.draggable );     
  }   
  });
于 2013-01-18T00:05:43.723 回答