在AJAX加载的内容上获取DIV ID

时间:2013-07-07 21:29:59

标签: html jquery jquery-post

divid唯一身份,而我正试图通过div

获取id jQuery
<div class="quantity" id="UNIQUE_ID">Quantity</div>

一切正常,但在使用div加载ajax后 - 我无法从加载的id获取div

$('.quantity').click(function() {       
    $.post('quantity.php', { id: $(this).attr('id') }, function(output) {
        $(this).html(output);
    }); 
}); 

有什么想法吗?

2 个答案:

答案 0 :(得分:3)

这应该有效

$('.quantity').click(function() {
    var that = this;        

    $.post('quantity.php', { quantityId: $(that).attr('id') }, function(data) {
        $(that).html(data);
    }); 
}); 

但这就是我写它的方式

<div class="quantity" data-id='<?=$unique_id?>'>
    Quantity
</div>

$('.quantity').on('click', function() {
    var that = this;        

    $.post('quantity.php', { quantityId: $(that).data('id') }, function(data) {
        $(that).html(data);
    }); 
});     

动态divs

<div class="quantity" data-id='<?=$unique_id?>'>
    Quantity
</div>

$(document).on('click', '.quantity', function() {
    var that = this;        

    $.post('quantity.php', { quantityId: $(that).data('id') }, function(data) {
        $(that).html(data);
    }); 
});     

答案 1 :(得分:1)

一旦div被刷新(它在document.ready()上绑定了吗?),你的div的onclick绑定将不起作用。解决方案是每次更改元素时将函数重新绑定到元素(一个错误的函数)或使用on()的{​​{1}}函数。示例代码:

jquery

更新:正如评论中所讨论的那样,$(document).on('click', '.quantity', function(){ var id = $(this).attr('id'); $.post('quantity.php', { quantityId: id }, function(data){ $('#'+ id).html(data); }); }); 方法应该作为一个整体绑定到文档,而不是实际用作已弃用的on方法的类。