【问题标题】:Jquery getting new value after data attribute update数据属性更新后Jquery获取新值
【发布时间】:2019-01-16 17:58:09
【问题描述】:

我正在通过 ajax 响应更新链接属性值。但是当我再次单击按钮/链接时获取旧值而不是新值。

下面是我的代码;

HTML

<div class="calendar-control"><a class="evecal-month-view-control fright next-month" href="#" data-month="2" data-year="2019">Next</a><span class="text-center month-name">January 2019</span><a class="evecal-month-view-control fright prev-month" href="#" data-month="12" data-year="2018">Previous</a></div>

还有 Jquery 代码。

jQuery(document).on('click', '.evecal-month-view-control', function(e){
    e.preventDefault();
    var month = jQuery(this).data('month');
    var year = jQuery(this).data('year');
    console.log(month);
    _getMonthCalendar(month, year);
});

var _getMonthCalendar = function(m, y){
    jQuery.ajax({
        type: 'POST',
        url: eventcaldata.ajaxurl,
        data: {
            action: 'ec_ajax_month_table',
            year: y,
            month: m,
            nonce: eventcaldata.nonce,
        },
        beforeSend: function(){
            console.log('sending...');
        },
        success: function(response){
            jQuery('.next-month').attr( 'data-month', response.nextmonth.month );
            jQuery('.next-month').attr( 'data-year', response.nextmonth.year );
            jQuery('.prev-month').attr( 'data-month', response.prevmonth.month);
            jQuery('.prev-month').attr( 'data-year', response.prevmonth.year);
        }
    });
}

首先在.next-month 类上data-month 属性值为2 然后在响应后更改为3。但是当我再次单击时 我得到2 值的那个按钮应该是3

【问题讨论】:

    标签: javascript jquery


    【解决方案1】:

    jQuery 对象上的 .data() 方法缓存初始读取的值。随后对 .data() 的调用将首先查看 jQuery 的数据存储并向您发送该值。 .attr() 不会更新数据存储,但会更新 HTML 中的属性。使用 .data() 或 .attr() 但避免混搭。

    【讨论】:

      【解决方案2】:

      不要混合使用 attr()data()data() 缓存它从元素中读取的值,并且不更新属性。因此,如果您使用数据进行更新, attr 将看不到它。选择其中一个,然后坚持下去。

      【讨论】:

        猜你喜欢
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 1970-01-01
        • 2015-11-18
        • 1970-01-01
        • 1970-01-01
        相关资源
        最近更新 更多