1

我有独特divid,我正在努力做到这一点div idjQuery

<div class="quantity" id="UNIQUE_ID">Quantity</div>

一切正常,但在加载divajax- 我就是无法id从加载中获取div

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

有任何想法吗?

4

2 回答 2

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);
    }); 
});     

对于动态 div

<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);
    }); 
});     
于 2013-07-07T21:54:16.010 回答
1

一旦 div 被刷新(它绑定到 document.ready() 对吗?) ,onclick绑定到您的 div 将不起作用。解决方案是每次更改时将函数重新绑定到您的元素(一个不好的)或on()使用jquery. 示例代码:

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

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

更新:正如评论中所讨论的,该on方法应该绑定到整个文档,而不是实际作为已弃用live()方法工作的类。

于 2013-07-07T21:44:22.583 回答