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 = trash或我的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方法时,它就像我输入垃圾桶一样无效。
答案 0 :(得分:2)
$droppableId
只是元素的id而不是选择器或元素本身。
尝试.appendTo($('#'+$droppableId));
或.appendTo('#'+$droppableId);
作为一个侧面点,我尝试在使用jquery时不要在变量的开头使用$
,这看起来有点令人困惑。
答案 1 :(得分:0)
$("#trash").droppable({
accept: "#gallery > li",
activeClass: "ui-state-highlight",
drop: function( event, ui ) {
var $droppableId = $(this).attr("id");
deleteImage($droppableId, ui.draggable );
}
});