2017-03-21 42 views
0

我有一个搜索字段女巫通过ajax/jquery生成用户列表。ajax生成文本中的链接

结果:

<li class="list-group-item"> 
    <span class="glyphicon glyphicon-user"></span> 
    <span class="badge addUserToGroup" data-user="{{ user.getId }}"><span class="glyphicon glyphicon-ok"></span> Add</span> 
    {{ user.getUsername }} <br /> 
    {{ user.getEmail }} 
</li> 

现在我打算从我的搜索结果通过点击添加用户到组。但没有任何反应。当我在看酸时,我看不到搜索结果(当然,因为直到后来才加载)。但是,我如何定位源中不可见的跨度?

这个简单的测试为了清晰。下面的功能从未触发。

$(".addUserToGroup").click(function() { 

    alert('Hello World'); 

}); 

我该怎么办?

+0

你把你的代码包装到'$(document).ready(function(){..})'中吗?否则它不会被正确初始化。 编辑:或者将函数挂钩到你的ajax请求的'done()'回调中。 无论如何,该功能需要被正确初始化。 – Marco

+0

当你添加一个动态内容时,在你的情况下你的搜索结果需要绑定'body'上的事件并指定你将要使用的动态选择器,就像下面的答案一样。 –

回答

1

我想你可以改变你一点点的jQuery,它会将你的点击处理程序附加到动态元素。

$('body').on('click', ".addUserToGroup", function() { 

    alert('Hello World'); 

}); 
+0

太棒了!它像一个魅力! – Dunken

+0

如何获取我点击的元素?在这种情况下,$(this)将引用body。 – Dunken

+0

'$(this)'应该是被点击的元素。看到这个bin https://jsbin.com/liladuviga/edit?html,js,output – spirift