1

単純なドラッグアンドドロップの「ゲーム」を開発しようとしています。簡単に言うと、さまざまなアイテムを領域にドラッグアンドドロップするだけで、ドラッグしたアイテムに応じて正しいか間違っているかがわかります。これは私がこれまでに持っているものであり、まったく機能していません。理由はわかりません。私のJSとjQueryの知識には、まだまだ多くの要望があります。

<script>
$(function() {
    $( "#draggable" ).draggable();
    $( "#wrong" ).draggable();

    $( "#droppable" ).droppable({    
        drop: function( event, ui ) {
            var currentId = $(this).attr('id');
            if (currentId == "draggable") {
                $( this )
                    .addClass( "highlight" )
                    .find( "p" )
                    .html( "Correct! :)" );
            } else {
                $( this )
                    .find( "p" )
                    .html( "Wrong! :(" );
            }
        }
    }); 
});
</script>

動作するようになったので、ドラッグ可能な画像のインスタンスを増やす必要がありますが、追加すると、追加された新しい画像は動作しません。

http://jsfiddle.net/KcruJ/9/

4

3 に答える 3

0
var currentId = $(this).attr('id');
if (currentId == "draggable")
    ...

[1]のように、真になることは決してありません。$(this) represents the droppable the draggable is dropped on. ui.draggable represents the draggable

試す:

var currentId = $(ui.draggable).attr('id');
if (currentId == "draggable")
    ...
于 2012-04-24T13:54:59.250 に答える
0

ハハハ、アレックスはこれをロックしているようだ。

答えがあります:http://jsfiddle.net/aGqHh/1/

于 2012-04-24T15:05:14.717 に答える
0

これは動作します: http://jsfiddle.net/T6nu3/2/


$(this).attr('id');

常に戻りdroppableます。ドラッグされた要素にアクセスする必要があります。

$(ui.draggable).attr('id');

詳細については、jQuery UI ドキュメントを参照してください。

コード:

$(function() {
    $("#draggable").draggable();
    $("#wrong").draggable();

    $("#droppable").droppable({
        drop: function(event, ui) {
            var currentId = $(ui.draggable).attr('id');
            if (currentId == "draggable") {
                $(this).addClass("highlight").find("p").html("Correct! :)");
            } else {
                $(this).find("p").html("Wrong! :(");
            }
        }
    });
});
于 2012-04-24T14:00:43.987 に答える