Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/361.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript Jquery在数据属性更新后获取新值_Javascript_Jquery - Fatal编程技术网

Javascript Jquery在数据属性更新后获取新值

Javascript Jquery在数据属性更新后获取新值,javascript,jquery,Javascript,Jquery,我正在通过ajax响应更新链接属性值。但是当我再次单击按钮/链接时,会得到旧值而不是新值 下面是我的代码 HTML 首先在上。下个月分类数据月属性值为2 然后在响应后,它被更改为3。但是当我再次单击 当按钮应该是3时,我得到的是2值 不要混合使用attr()和data()data()缓存从元素读取的值,而不更新属性。因此,如果使用数据更新,attr将看不到它。选择一个或另一个,并坚持使用。不要将attr()和data()混用在一起data()缓存从元素读取的值,而不更新属性。因此,如果使用数据更

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

下面是我的代码

HTML 首先在
上。下个月
分类
数据月
属性值为
2
然后在响应后,它被更改为
3
。但是当我再次单击 当按钮应该是
3
时,我得到的是
2


不要混合使用
attr()
data()
data()
缓存从元素读取的值,而不更新属性。因此,如果使用数据更新,attr将看不到它。选择一个或另一个,并坚持使用。

不要将
attr()
data()
混用在一起
data()
缓存从元素读取的值,而不更新属性。因此,如果使用数据更新,attr将看不到它。选择一个或另一个,并坚持使用。

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

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

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