我正在尝试将点击事件绑定到动态创建的元素。由于单击后需要识别确切的元素,因此我尝试保存一个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)
只附加原始字符串,而不附加创建的对象。
本文收集自互联网,转载请注明来源。
如有侵权,请联系[email protected] 删除。
我来说两句