<div id="result" class="cart-content">
[_divmenu]
<div id="cartid" class="cart-one-goods">
<img src="../templates/img/[_image]" alt="товар" class="cart-img-goods">
<h3 class="cart-name-goods">[_name]</h3>
<button class="cart-btn btn-plus" data-id=[_id] data-qu=[_quantity]></button>
<input class="cart-number-goods" value="[_quantity]" type="text">
<button class="cart-btn btn-minus" data-id=[_id] data-qu=[_quantity]></button>
<p class="cart-price-goods">[_summary] р.</p>
<button class="cart-btn cart-delete" data-id=[_id]></button>
</div>
[_divmenu]
$(document).ready(function(){
$(".cart-one-goods").on('click', '.btn-plus', function(){
id = $(this).attr("data-id");
qu = $(this).attr("data-qu");
$.ajax({
type: "POST",
url: '../moduls/plus-minus-cart.php',
data: {
idtovara: id,
quant: qu,
plus: 'plus'
},
success: function(data) {
$("#result").load(location.href+ ' #cartid');
}
});
});
});
在div'结果'中单击按钮数据后,只更新一次。
如何更改此代码以在每次单击按钮时更新div?
答案 0 :(得分:1)
好了,因为你提到了一个childSelector
.btn-plus
,这个函数第二次无法工作,因为加载功能后,.btn-plus
类的元素不存在。所以你可以提到另一个childSelector
,它在加载后保持不变或者根本没有。
答案 1 :(得分:0)
基于参考: - Understanding Event Delegation jQuery
由于cart-one-goods
div位于result
容器内,这就是为什么在首次刷新后它无法正常工作
如下所示: -
$(".cart-content").on('click', '.cart-one-goods .btn-plus', function(){
id = $(this).attr("data-id");
qu = $(this).attr("data-qu");
$.ajax({
type: "POST",
url: '../moduls/plus-minus-cart.php',
data: {
idtovara: id,
quant: qu,
plus: 'plus'
},
success: function(data) {
$("#result").load(location.href+ ' #cartid');
}
});
});
注意: -
如果$(".cart-content").on('click', '.btn-plus', function(){
无效,请尝试$(document).on('click', '.btn-plus', function(){
答案 2 :(得分:0)
使用jQuery ajax()方法并使用document.getElementById(divid)innerHTML = ""
在每次调用清除div
$(document).ready(function(){
$(".cart-one-goods").on('click', '.btn-plus', function(){
$.ajax(
id = $(this).attr("data-id");
qu = $(this).attr("data-qu");
$.ajax({
type: "POST",
url: '../moduls/plus-minus-cart.php',
data: {
idtovara: id,
quant: qu,
plus: 'plus'
},
success: function(data) {
$("#result").load(location.href+ ' #cartid');
}
});
},5000)
});
它将每5秒刷新一次你的div