如何重复刷新div而不重复?

时间:2017-08-19 08:53:18

标签: javascript jquery ajax

<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?

3 个答案:

答案 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