2013-04-26 29 views
0

我正在使用Javascript編寫應用程序。沒有太多細節,我有一個遊戲板(它實際上只是一個HTML表格)。用戶通過點擊s與板交互,所以我在$(document).ready()中有一個單擊事件監聽器。事件處理程序通過更改多個變量/對象/等的狀態來更新板,然後調用layoutBoard,它讀取所有這些對象的狀態並填充。事件處理程序無法監視文檔加載後注入HTML的元素

我遇到的問題是,新的s不會被我的事件處理程序監視,這意味着不再檢測到點擊事件。我怎樣才能將事件處理程序指向新的s或以其他方式繼續檢測板上的點擊?這裏是我的代碼:

$(document).ready(function(){ 
    layoutBoard(); 
    $("td").click(
     function() { 
      movePiece($(this)); 
     } 
    ); 
}); 

function movePiece(clickedCell){ 
    //do stuff 
    layoutBoard(); 
} 

function layoutBoard(){ 
    $("#board").empty(); 
    //recreate board and new <td>s 
} 

回答

2

事件代表團使用

$(document).on("click","td",function(){ 
    movePiece($(this)); 
}); 

如果你委託給最接近的靜態父容器最好是...

$('#tableID').on("click","td",function(){ 
    movePiece($(this)); 
}); 
1
$("body").on("click", "td", function() { 
    movePiece($(this)); 
}) 

用這個來綁定你的d ynamic事件處理程序

相關問題