双击Jquery删除元素

时间:2011-07-27 14:04:19

标签: jquery drag-and-drop click double

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

  $("#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); 
         });

但我记得“ui未定义”,我不知道该怎么做。请帮忙

1 个答案:

答案 0 :(得分: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/