将对象传递给附加元素上的 onclick

Pass object to onclick on appended element

我将几个 HTML 元素附加到我的 DOM 并且需要将用于创建元素的对象传递给元素上的 onclick 函数。

我尝试了以下方法,但对象总是引用最后一个而不是当前对象:

function addElementToList(obj){
    var elementHTML = '<li><a href="#">';
    elementHTML += obj.name + '<br>';
    elementHTML += '</a></li>';
    $('#list-canvas .elementList).append(elementHTML);

    $(this).click(function(){
        showDetails(obj);
    })
}

如何将当前元素传递给 onclick 函数?

在这种情况下,最好使用 jQuery 创建该元素:

var element = $( '<li><a href="#">' + obj.name + '<br></a></li>' );
element.click(function(){
    showDetails(obj);
});
$('#list-canvas .elementList').append(element);