如何将onclick事件附加到动态创建的元素上

时间:2019-08-20 18:33:34

标签: javascript jquery html

我正在尝试触发附加到html标签的事件

此表是内置函数

    function detail(id){
      console.log(id)
    }

function search(data){
                $.post(url, {valorBusqueda: textoBusqueda}, function(data) {

                    data = JSON.parse(data);

                        $.each(data, function(i, val){

                                id = val.id;


                                html += '<tr onclick="detail('+id+')">';
                                html += '<tr>';
                            }
                        });      

                 }); 
}

但是当我单击该元素时,我得到此错误:

未捕获的ReferenceError:未定义detallePaciente

在文件中实际定义的时间

知道我该如何解决吗?

2 个答案:

答案 0 :(得分:1)

更改此行:

html += '<tr class="clickedclass" data-id = "' + id + '">';

并在Jquery中对此发出警报:

$("body").on("click", ".clickedclass", function(){
  var id = $(this).attr("data-id");
  console.log(id);
});

答案 1 :(得分:0)

函数声明中存在语法错误。

应该是:

function detail(data) {
...
}

search函数相同的错误。需要查看如何将其附加到click事件上以帮助实现此目的。