Jquery函数没有正确传递参数

时间:2013-01-18 00:02:10

标签: jquery html jquery-ui

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方法时,它就像我输入垃圾桶一样无效。

2 个答案:

答案 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 );     
  }   
  });
相关问题