[英]jQuery click event on dynamically generated elements for calendar?
以下問題的答案,
var counter = 0;
$("button").click(function() {
$("h2").append("<p class='test'>click me " + (++counter) + "</p>")
});
$("h2").on("click", "p.test", function(){
alert($(this).text());
});
我有一個動態生成的日歷,當您單擊某天時,它會代替日歷以替換當天的事件,而不是打開新的網頁。 這些事件在表中列出,我希望能夠單擊一行並使其觸發使用location.assign()
的函數。 因此,每一行如下所示
<tr id="message-7">
日歷中的新頁面加載並創建,
<tr id="message-132">
單擊不會觸發該功能。 在另一個問題的示例中,它訪問元素的文本以使元素唯一,而不是像我這種情況那樣為元素賦予唯一的ID#。
我是否以錯誤的方式解決問題? 我可以添加諸如"title=132"
標簽之類的東西以供參考嗎?
理想情況下,盡量不要使ID產生太多含義。 而是使用此處顯示的數據。
所以代替
<tr id="message-7">
采用
<tr id="1234567" data-message="7">
然后在代碼中,您可以將數據尋址為:
var messageVal = $("#1234567").data("message")
並且,如果您需要添加通用的click事件,則可能要對所有適當的TR使用虛擬的CSS類分配:
<tr id="1234567" data-message="7" class="messageRow">
這樣你就可以寫
$(".messageRow").on("click", function(event){
event.preventDefault()
var messageVal = $(this).data("message")
這在僅某些TR包含可點擊內容的情況下很有用-只是不要將類分配給其他TR。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.