我div
有id
唯一身份,而我正试图通过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);
});
});
有什么想法吗?
答案 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
方法的类。