2011-07-27 108 views
0

jquery拖放问题
我想删除div容器内的一些元素。我的脚本是这样的:我将元素拖到#deleteArea中,元素就出来了。该脚本:jquery通过双击删除元素

$("#deleteArea").droppable 
    ({ 
     drop: function(event, ui) { 
      alert('in'); 
     deleteImage(ui.draggable,ui.helper); 
     }, 
     over: function() { 
        $(this).css('backgroundColor', '#cedae3'); 
      }, 
      out: function() { 
        $(this).css('backgroundColor', '#ffffff'); 
      }, 
     }); 

function deleteImage($draggable,$helper) 
     { 
     params = 'id=' + $draggable.attr('id'); 

     $.ajax({ 
     url: 'delete.php', 
     type: 'POST', 
     data: params, 
      success: function(msg){ 
            } 
     }); 
     $helper.effect('transfer', { to: '#deleteArea', className: 'ui-effects-transfer' },500); 
     $draggable.hide(); 
     } 

现在我只想通过双击删除元素。我尝试从上面这个小的代码脚本启动:

$('.produse').dblclick(function(event, ui) { 
      alert('in'); 
     deleteImage(ui.draggable,ui.helper); 
     }); 

但我recive“UI是不确定的”,我不知道该怎么办。请帮助

回答

1

您没有正确地将参数传递给点击处理程序。

在这段代码:

$('.produse').dblclick(function(event, ui) { 
     alert('in'); 
    deleteImage(ui.draggable,ui.helper); 
    }); 

你有没有适当地声明的参数的匿名函数。如果你看一下jQuery doc for .dblclick(),有称这是两种方式:

.dblclick(handler(event)) 

.dblclick([eventData,] handler(event)) 

您既没有使用这些的。

如果你希望将一些数据传递到dlbclick处理器,它的工作是这样的:

$('.produse').dblclick({uiData: ui}, function(event) { 
     alert('in'); 
    deleteImage(event.data.uiData.draggable, event.data.uiData.helper); 
    }); 

你可以看到它在这里的行动:http://jsfiddle.net/jfriend00/NUU8s/