簡體   English   中英

將數據添加到動態創建的元素並綁定事件

[英]Add data to dynamically created element and bind event

我正在嘗試將點擊事件綁定到動態創建的元素。 由於單擊后需要識別確切的元素,因此我嘗試將ID附加到該元素。 當前看起來像這樣:

var li = '<li class="item" data-type=' +$(this).attr("type")+' data-path="file://'+$(this).attr("path")+'" data-id="'+$(this).attr("id")+'">' + $(this).attr('name') + "</li>";
$(li).bind("click", {id : $(this).attr("data-id")}, function(event){
    console.log("ID: " + event.data.id);
});
$("#playlistfiles").append(li);

不幸的是,如果單擊該元素,則什么也不會發生。 我知道這可能是重復的,但是搜索了一段時間之后,我無法解決問題。

干杯,stiller_leser

那是因為您創建了一個jQuery對象,但是沒有使用它。 您可以使用.appendTo()方法。

$(li).bind("click", {id : $(this).attr("data-id")}, function(event){
    console.log("ID: " + event.data.id);
}).appendTo('#playlistfiles');

要么:

var $li = $(li).bind("click", {id : $(this).attr("data-id")}, function(event){
    console.log("ID: " + event.data.id);
});

$("#playlistfiles").append($li);

為什么會這樣?

li是一個字符串,通過將字符串傳遞給jQuery創建一個唯一的對象, $(li)返回一個jQuery對象, .bind()添加一個處理程序,然后像許多其他jQuery方法一樣返回當前集合,返回值為一個jQuery對象,由於您不存儲重新調整的值而實際上被丟棄,並且.append(li)僅附加原始字符串,而不附加創建的對象。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

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