簡體   English   中英

日歷動態生成元素上的jQuery click事件?

[英]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.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM