2

ランダムに1つ<div>を選択してから、クリックした場合にトリガーされるのと同じイベントハンドラーをトリガーしたいと思います。私のイベントハンドラーは次のようになります。

function move(){        
    var currentLeft = $(this).css("left")
    var currentTop = $(this).css("top")
    if($(this).hasClass("movable")){
        $(this)
            .css("left", leftOld)
            .css("top", topOld);
        leftOld = currentLeft;
        topOld = currentTop;
    }
    findMovable();
}

通常、このイベントはクリックイベントによってトリガーされます。イベントリスナーは次のようになります。

$(".piece").click(move);

これらのdivをランダムにクリックして、同じイベントハンドラーをトリガーできる関数が必要です。私はこのようなもので作業していますが、終了する方法がわかりません:

$("#shufflebutton").click(shufflePieces);  //event listener

function shufflePieces(){
    var clickTile = Math.floor(Math.random() * $(".movable").length);
    $(".movable")[clickTile].trigger(move); //this is the line I can't figure out
}

<div>イベントハンドラー(move)は、を使用してその情報にアクセスする必要があるため、どのdivが「クリック」されたかを知っていることが重要です$(this)。私のために何か助けはありますか?ありがとう!

4

1 に答える 1

1

このような:

$('.movable').eq(clickTile).click();

$(...)jQueryオブジェクトを返します。jQueryオブジェクトのインデックス付きプロパティ([3])は、jQueryオブジェクトではなく生のDOM要素を返します。
jQueryオブジェクト内の特定の要素のjQueryオブジェクトを取得するには、を呼び出します.eq()

于 2012-08-12T02:08:26.377 に答える