2012-05-11 9 views
1

私にはわからない問題があります。私はdropable要素を条件に基づいて別の関数をドロップしようとしているアイテムのクラスに基づいてドロップします。私の人生のために、私はこれを行う方法を理解することはできません。ここにリンクがあります:http://jsfiddle.net/643PC/22/jQueryドロップ可能な要素 - ドロップされたアイテムに基づく条件付きドロップイベント

pageContainerは行を受け入れます。行はスパンを受け入れます。スパンはアクションとフィールドを受け入れ、ドロップされたアイテムに基づいて別の機能を起動する必要があります。何か案は?デイヴィッドの助けを借りて

完成機能:

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

Davidさん、FieldDropとactionDrop関数を実行しようとしたときにコンテキストが失われている理由を理解しました。これで正常に動作しています!助けを感謝します! – Brandon

関連する問題