2014-02-11 134 views
0

我試圖在點擊圖片(這是一個遊戲卡,在我的情況下)運行一個函數,但它不起作用。使用jquery處理點擊事件

這就是我所做的:

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

後一'jsfiddle'鏈接顯示您的(非)工作代碼在行動 –

回答

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]); 
}); 
+0

非常感謝! 我已經改變了「那是失蹤.. 無論如何,我看到事件代表團是用於元素的所有孩子.. 但是,我想運行函數」cardFromHandHBoxPressed(x)「與一個不同的參數對於我的每一張卡.. 所以我已經嘗試了我原來的解決方案,但現在它的似乎並非所有的卡都是可點擊的.. – NST111