2015-08-26 12 views
1

我的頁面具有生成表並將其附加到div的ajax函數。 以下是由Ajax調用的php頁面。單擊並觸發Ajax生成的表上的函數

echo "<table border='1' cellspacing='12' cellpadding='4' style='border-collapse: collapse' width='700' id='tablecat'>"; 

while ($row = mysql_fetch_assoc($results)) { 
    $category = $row['category']; 

echo "<tr bgcolor='white'> 
<td class='value'>$category</td> 
</tr>"; 
} 

echo "</table>"; 

然後我需要調用另一個Ajax調用時,單擊表格單元格。嘗試了很多方法,但沒有成功。

$("#tablecat").on("click", "td", function() { 

}); 

有人能告訴我該怎麼做? 謝謝。

+0

將您的下一個ajax調用放在上面的代碼中。那是什麼問題? – rawat0419

+0

是$(document).ready()中的代碼 – rawat0419

+0

Norlihazmey Ghazali的回答已解決。我已經將它標記爲正確的答案。接下來的問題是如何讀取這個Ajax加載內容的值? document.getElementById('abcd')。value not working .. – user1000

回答

1

在這種情況下,你event delegation我以前不工作,因爲$("#tablecat")還動態創建的,你需要在它的頂層像div引用保持tablebodydocument像這樣:

$(document).on("click","#tablecat td", function() { 
    alert('hi'); 
}); 
+0

它的工作!非常感謝您... – user1000

+0

很高興聽到您的聲音,歡迎您考慮接受答案,方法是點擊此答案左側的「右側標記」以獲取信件參考。 –

+0

還有一個幫助。你能告訴我如何閱讀這個Ajax生成的表格單元格中的文本嗎?在我的代碼中$ category的值?像document.getElementById('abcd')。值不起作用。 – user1000

0

由於我知道你在文檔準備好的時候編寫你的事件監聽器,但是作爲監聽器被設置爲在文檔準備好(它通過ajax獲取)時不存在的對象,它不起作用。

你可以在身上設置監聽器,例如:

$("body").on("click", "#tablecat tr td", function(e) { 

}); 
0

我知道一個選項,您可以在AJAX成功函數內部的jQuery代碼。 舉一個例子:

$.ajax({ 
url: "/fielname.php", 
type: "POST", //POST 
success:function(response) { 
    $("#tablecat").on("click", "td", function() { 

    }); 
}, 
error:function(data){ 

} 

});

0

,你只需要設置

$("#tablecat").on("click", "td", function() { 

}); 
在功能

,當你生成表阿賈克斯,成功 - 調用這個函數。

相關問題