2013-05-22 62 views
0

我正在使用jQuery UI droppabledraggable。根據在某個畫布上放置的元素,調用不同的函數。所以現在是這樣的:在jQuery UI中處理拖放事件的正確方法

$('#myCanvas').droppable({ 
    drop: function (e, ui) { 
     if (draggableId === "idA") { 
      functionA(); 
     } else if (draggableId === "idB") { 
      functionB(); 
     } else if (draggableId === "idC") { 
      functionC(); 
     } 
    } 
}); 

我想擺脫醜陋的膚色。它看起來像一個多態性問題,但在這種情況下我不知道如何處理這個問題。感謝幫助!

回答

1

嘗試

var fns = { 
    idA: functionA, 
    idB: functionB, 
    idC: functionC 
} 
$('#myCanvas').droppable({ 
    drop: function (e, ui) { 
     var fn = fns[draggableId]; 
     if($.isFunction(fn)){ 
      fn(); 
     } 
    } 
}); 
+0

這是完美的解決方案。謝謝! – michal