Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/465.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 将函数绑定到动态创建的元素_Javascript_Jquery_Html - Fatal编程技术网

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

Javascript 将函数绑定到动态创建的元素,javascript,jquery,html,Javascript,Jquery,Html,我有一些javascript生成一些html元素,如下所示: for (var i = 0; i < suggestions.length; i++) { var suggestion = suggestions[i]; var $li = $('<li data-profile-id="'+ suggestion.id + '" data-profile-name="'+suggestion.firs

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

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时如何将其分配给它们


谢谢

就快到了,但实际上,使用类似
document的父容器委派它

$(document).on('click','.search-name-result', function(e){
            $input.val($(this).data('profile-name'));
        });
而且,你可以改变

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

使用
$(this)

$(this).data('profile-name'))
由于它将是单击的
.search name结果

,因此您应该对动态添加的元素使用事件委派

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

在发布问题之前,至少搜索一下标题本身……我们每天会收到两次这样的问题。@Bala,没有注意到这一点。说得好。谢谢
$(document).on('click','.search-name-result', function(e){
        $input.val($('.search-name-result').data('profile-name'));
});