事件绑定到html服务器响应

时间:2017-11-01 19:11:34

标签: javascript html

我无法理解如何从服务器响应呈现的元素中触发特定函数。

在组件的模板中,我有类似div的内容(id =" myDiv")

我向服务器发出请求,该服务器返回HTML标记。所以在我的组件中,我会做类似的事情 $('#myDiv').html(response);

这个问题是我得到一个带有HTML标记的完整页面,每个<li>项目都有一个标记:<a href="javascript: myFunction();"。由于所有元素都已经作为普通html传递,我如何对每个li项目进行(click)="myFunction"事件绑定?

编辑:(对于格式感到抱歉,因为你可以看到我之前从未真正发布任何内容)

我有一个功能

loadData(val){
 let url = 'http://www.something.com/some-endpoint?lg='+val;
 $.post(url,function(data)){
  $('#myDiv').html(data);
 }
}

data响应很长很复杂,而且在那里的某个地方有:

<li><a href="javascript: loadData(@id)"></a></li>

当用户点击a标签时,我无法运行loadData(),因为angular不会触发该功能。

我无法添加(click)="loadData()",因为它是我从服务器获得的回复。

1 个答案:

答案 0 :(得分:0)

当您动态添加li时,这应该可以正常工作

 $(document).on('click', 'li', function(){
  //Do what ever you want on click event

});

或者

 $(document).on('click', 'a', function(){
  //Do what ever you want on click event
});

或者您可以为所有人添加课程&#39; a&#39;标签并尝试

$(document).on('click', 'NameOfClassAddedinATages', function(){
  //Do what ever you want on click event

});