0

解決策が見つかりました! 私はそれを見つけました、変数アイテムのIDを取得できることを見落としていました。だから私は入れvar item_id = item.attr('id');て、それが私の解決策でした。思ったよりずっとシンプル。助けてくれてありがとう!

さて、jQuery には複数のドラッグ可能な要素があります。それらはすべて画像ですが、それぞれに独自の ID があります。とにかく、画像がドロップ可能にドロップされると実行される機能を設定しました。データベースにドロップされた画像を処理できるように、画像のIDを取得できるようにしたいと考えています。

function foundationsInSpot(drag_item,spot)
{
var oldSpotItem = $(spot).find('img');
if(oldSpotItem.length>0) {
    oldSpotItem.appendTo('#foundationinv').draggable({ revert: 'invalid' });
}
var item = $('<img />');
var item_id = "";
var bid = "<?= $bid ?>";
item.attr('src',drag_item.attr('src')).attr('id',drag_item.attr('id')).attr('class',drag_item.attr('class')).appendTo(spot).draggable({ revert: 'invalid' });
drag_item.remove();
alert('BenID: ' + bid + ' Foundation: ' + item_id);
var dataString = 'item_id='+ item_id + '&bid=' + bid;  
    $.ajax({
        type: "POST",
        data: dataString,
        url: "http://motb.isgreat.org/objects/pfoundations.php",
    });
}

それが私のコードです。を見つける必要がありますitem_id。これは私の推測ですvar item_id = $('<img />').attr('id');が、空白の情報が返されました。私も試しvar item_id = ui.draggable.attr("id");てみましたが、残りの機能が停止しました。何か案は?前もって感謝します。

ちなみに、ドラッグ可能なアイテムは次のようになります。 <img src='http://motb.isgreat.org/objects/khhhqw4s.png' class='object foundation' id='khhhqw4s'/>

UPDATEvar item_id = ui.draggable.attr("id");上記の if ステートメント を移動したところ、 undefined. したがって、ここからどこに行けばよいかわかりませんが、AJAX 呼び出しがデータベースをundefined.

更新 - 再び

したがって、これが簡単になる場合に関数を呼び出す方法は次のとおりです。

    $(".foundations").draggable({ revert: 'invalid'}).addTouch;
$('#foundationinv').droppable({accept: '.foundations'});
$("#foundations").droppable({ accept: '.foundations'})
$('#foundations,#foundationinv').bind('drop', function(ev,ui) { foundationsInSpot(ui.draggable,this); });

私はこれまでにこのようなことをしたことがないので、本当に私を超えています. このページを直接見たい場合は、http: //motb.isgreat.org/ にアクセスしてログイン ボタンをクリックし、ユーザー名とパスワードの両方にtestbotを使用します。ドラッグ可能な場所を確認するには、左側にこの大きなボックスがあり、その下に 4 つの小さなボックスがあります。単語が基礎である小さなボックスの上をクリックします。表示されるオブジェクトを小さなボックスにドラッグしようとしています。私が伝えようとしている情報を含むアラートが表示されます。私のソースに問題がないか自由に確認してください。項目は私のデータベースから呼び出されるため、私の PHP はおそらくあなたのソースから欠落しています。


私はそれを見つけました、変数アイテムのIDを取得できることを見落としていました。だから私は var を置きitem_id = item.attr('id');、それが私の解決策でした。思ったよりずっとシンプル。助けてくれてありがとう!

4

1 に答える 1

7

内部にdroppableは、というプロパティがありますdrop

$("#destination").droppable({
   hoverClass: 'ui-state-hover',        
   helper: 'clone',        
   cursor: 'move',        
   drop: function(event, ui) {            
       $(this).addClass('ui-state-highlight');
       $(ui.draggable).addClass('ui-state-highlight');     
       $(ui.draggable).draggable('disable');

       console.log('Dragged: ' + $(ui.draggable).attr("id"));
   }    
});

そのメソッドを使用して、ドロップされたオブジェクトを呼び出します$(ui.draggable).attr("id")

オブジェクトui.draggableが HTML だけであることがわかった場合は、すぐにそれをラップして、それを使用$()して任意の jQuery 操作を実行できるようになります。

http://jsbin.com/iboli4/edit

インスペクターでコンソールを開いてIDを確認します

于 2011-05-28T18:32:57.293 に答える