2

我想随机选择一个<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 很重要,因为它必须访问有关<div>使用$(this). 对我有什么帮助吗?谢谢!

4

1 回答 1

1

像这样:

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

$(...)返回一个 jQuery 对象。jQuery 对象的索引属性 ( [3]) 返回原始 DOM 元素,而不是 jQuery 对象。
要获取 jQuery 对象中特定元素的 jQuery 对象,请调用.eq().

于 2012-08-12T02:08:26.377 回答