当通过AJAX返回的新DOM元素后,新的元素并不支持已设置Drag&Drop的功能,
而我再次调用Drag&Drop的方法重新注册也不行~有什么好办法呢?这是我的代码
$('div#adminPage').pagination(<?=$adminImagesCount?>,{
perPage:24,
callback:function(page){ var start=(page-1)*24;
var end=page*24; $.post("publish_images_query.php",
{ flag:0, rowStart:start, rowEnd:end },
function(msg){
$('ul#adminDrag li').remove();
$('ul#adminDrag').append(msg);
   }); $("div#adminPage span.pageNumber").html("检索到"+page+"记录");
adminDragAndDrop();
}
});

解决方案 »

  1.   

    Drop & Drag的功能方法
    // 支持拖放
    var $gallery=$('#customerDrag'), $trash = $('#customerGabage'); // 图片展示区拖动
    $('li',$gallery).draggable({
      helper: 'clone',
      containment:'document',
      cursor:'move',
      cursorAt: { left: 20 , top:20 },
      opacity: 0.5,
      revert: 'invalid'
    }); // 垃圾回收区
    $trash.droppable({
    accept: '#customerDrag > li',
    drop: function(ev, ui) {
    deleteImage(ui.draggable);
    }
    });

    //  允许撤销
    $gallery.parent().droppable({
    accept: '#customerDrop > li',
    drop: function(ev, ui) {
    recycleImage(ui.draggable);
    }
    });

    // 删除展示容器中的物件
    function deleteImage($item){
    $item.fadeOut('slow',function(){
    // 检测gabage里是否有ul 
    var $list = $('ul',$trash).length ? $('ul',$trash) :$('<ul id="customerDrop"/>').appendTo($trash);

    $item.appendTo($list)
    .fadeIn(function(){
    $item.find('img')
    .animate({width: '40px' , height: '20px' ,opacity:'0.5'})
    .animate({width: '50px' , height: '30px' ,opacity : '1.0'},'slow','easeOutBounce')
    });
    }); $("ul#customerDrop>li").css({display : "inline"});
    }// end of deleteImage // 回收垃圾容器中的物件
    function recycleImage($item) {
    $item.fadeOut('slow',function(){
    $item.find('img')
    .animate({width : '80px', height : '60px',opacity : '1.0'},'easeOutBack')
    .end()
    .appendTo($gallery)
    .fadeIn();
    });
    }// end of recycleImage
      

  2.   

    ajax后$有丢掉吗?alert看看.
    什么意思~
      

  3.   

    jQuery的$是绑定到window的.但是AJAX有可能会把这个绑定解掉...