2011-07-27 178 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/