将函数绑定到动态创建的元素

时间:2015-06-05 09:18:15

标签: javascript jquery html

我有一些生成一些html元素的javascript,如下所示:

%22

我需要做的是为每个动态创建的li元素分配一个函数,如下面的代码:

for (var i = 0; i < suggestions.length; i++) {
                    var suggestion = suggestions[i];

                    var $li = $('<li data-profile-id="'+ suggestion.id + '" data-profile-name="'+suggestion.first_name + ' ' + suggestion.last_name + ' " class="search-name-result" ></li>');
                    $suggestionsUl.append($li);

                    var $img = $('<img src="/img/profile/' + suggestion.picture_url + '" class="search-suggest-img pull-left" />');
                    $li.append($img);

                    var $link = $('<a href="' + suggestion.id + '">' + suggestion.first_name + ' ' + suggestion.last_name + '</a>');
                    $li.append($link);
                }

但我不确定如何在创建它们时将其分配给每个li。

由于

2 个答案:

答案 0 :(得分:0)

几乎在那里,但实际上委托使用像<%= link_to 'xyz' show_saldo_path(:nomor => 'nomor', :def => 'def'......) %> 这样的父容器

def

此外,您可以更改

document

使用$(document).on('click','.search-name-result', function(e){ $input.val($(this).data('profile-name')); }); 之类的

$('.search-name-result').data('profile-name'))

因为它会被点击$(this)

答案 1 :(得分:0)

您应该使用事件委派来动态添加元素。

$(document).on('click','.search-name-result', function(e){
        $input.val($('.search-name-result').data('profile-name'));
});