使用jquery处理click事件

时间:2014-02-11 01:04:47

标签: jquery html performance click

我正在尝试在单击图像时运行一个函数(在我的情况下是一个游戏卡),但它不起作用。

这就是我所做的:

function setPlayerCards(cards)
{
    for(var i=0 ; i <cards.length ; i++)
    {
        var cardID = createCardID(cards[i]);
        var imagePath = createCardImagePath(cards[i]);

        $('<img class="card id="'+cardID +'" src=' + imagePath + '>').appendTo($("#playerCards"));
        $("#" + cardID ).click(function()
        {
            console.log(cardID  + "  clicked");//Just wrote it for debugging
            cardFromHandHBoxPressed(cards[i]);
        });
    }
}

元素创建成功,我可以看到卡片图片,但点击它们没有任何反应。

我也尝试过其他方法在点击后运行该功能..但对我来说没有任何作用..

任何帮助将不胜感激。

谢谢!

1 个答案:

答案 0 :(得分:2)

不工作的原因是,您在动态创建的代码中缺少"

$('<img class="card" id="'+cardID +'" src=' + imagePath + '>').appendTo($("#playerCards"));
//.................^....................

即使它不起作用,然后使用event delegation方法,因为按钮是动态创建的

$("#playerCards").on('click',"#" + cardID,function()
{
    console.log(cardID  + "  clicked");//Just wrote it for debugging
    cardFromHandHBoxPressed(cards[i]);
});