2017-03-21 81 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