2013-03-04 24 views
0

傳回數據的ID我使用$.get返回一些數據的能力:

$.get(url, function(data){ 
    $("#searchResults").html(data); 
}); 

當返回數據,它看起來是這樣的:

<div class="blah" cid="12344">12344</div> 

我希望能夠點擊此閱讀CID:

$('.blah').click(function(){ 
$(this).attr('cid'); 
}); 

JQuery的似乎並不HANDL這個......我說得對嗎?

+0

如果將它放置在.html(data)行之後,它將處理它。 – 2013-03-04 20:04:43

+0

html5的data-*特性可能會更好。 – Oliver 2013-03-04 20:07:41

回答

1

使用事件委託,你可以改變

$('.blah').click(function() { 

$('#searchResults').on('click', '.blah', function() { 

,然後你永遠不會有取消或重新添加此事件處理程序。

1

將HTML插入到DOM後,您需要附加該特定事件處理程序。

$.get(url, function(data){ 
    $("#searchResults").html(data); 
    $('.blah').unbind('click').click(function(){ 
     $(this).attr('cid'); 
    }); 
}); 
+0

這是正確的,只要你沒有'id =「searchResults」'元素外'class =「blah」'的元素。如果你這樣做,那麼處理程序將被添加多次。然後,解決方案是隻通過調整選擇器或僅將其應用於新創建的元素來將處理程序添加到新元素。 – dsh 2013-03-04 20:07:05

+0

我不是說這不起作用....我只是不能得到它的工作。當我有更多時間來反思時,我會記住這一點,然後再試一次。謝謝! – tree 2013-03-04 21:38:58