2012-05-11 51 views
1

我有一個問題,我似乎無法弄清楚。我試圖讓一個droppable元素有條件地基於被刪除項目的類別激發一個不同的函數。對於我的生活,我無法弄清楚如何做到這一點。以下是鏈接:http://jsfiddle.net/643PC/22/jQuery Droppable元素 - 基於項目丟失的條件拖放事件

pageContainer接受行。行接受跨度。 Spans應該接受Actions和Fields,並根據哪個項目被丟棄來觸發不同的功能。有任何想法嗎?

與大衛的幫助下完成的功能:

function generalDrop(event, ui) { 
     var appendTarget = $(this); 
     if (ui.draggable.hasClass('field-item')) { 
      fieldDrop(event, ui, appendTarget); 
     } 
     else { 
      actionDrop(event, ui, appendTarget); 
     } 
    } 

    function actionDrop(event, ui, appendTarget) { 
     $(document.createElement('a')) 
      .addClass('btn btn-primary') 
      .attr('href', '#') 
      .text('Button') 
      .appendTo(appendTarget) 
    } 

回答

0

更改generalDrop功能如下:

function generalDrop(event, ui) { 
    if (ui.draggable.hasClass('field-item')) { 
     fieldDrop(event, ui); 
    } 
    else { 
     actionDrop(event, ui); 
    } 
} 
+0

這似乎並不爲我工作。我將它複製到jsFiddle中並運行它,但沒有運氣,將動作或字段放入跨度容器時不會發生任何操作。你有工作副本,你可以參考我? – Brandon

+0

是的,在這裏:http://jsfiddle.net/rkLBK/。我沒有試圖讓你的邏輯在actionDrop或fieldDrop中工作,只是證明這些函數正在被調用。這些功能可能需要更多的工作。 – davidethell

+0

感謝大衛,我想出了爲什麼當我嘗試運行fieldDrop和actionDrop函數時失去了上下文。它現在工作正常!感謝幫助! – Brandon