我正在尝试在单击图像时运行一个函数(在我的情况下是一个游戏卡),但它不起作用。
这就是我所做的:
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]);
});
}
}
元素创建成功,我可以看到卡片图片,但点击它们没有任何反应。
我也尝试过其他方法在点击后运行该功能..但对我来说没有任何作用..
任何帮助将不胜感激。
谢谢!
答案 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]);
});