javascript - 在数据属性jquery中得到错误的值

标签 javascript jquery

我有一个带有数据属性的div

<div class='p1' data-location='1'></div>

我有这样的脚本

$('button').click(function(){

    var loc = $('.p1').data('location');
    alert('data location is'+loc);//SHOW THE DATA

    var num = 10;
    var count = loc;
    var element = $('.p1');
    var intv = setInterval(anim,1000); 
    function anim(){
        count++;
        num--;
        if(count==37){count = 1;}
        if(num==1){clearInterval(intv);}
        $(element).animateCSS('bounceOut',{
            callback: function(){
                $(element).attr('data-location',count);
                $(element).animateCSS('bounceIn');
            }
        });

    }
    anim();

});

使用上面的脚本,data-location 属性将更新为 10,但是如果我再次单击该按钮,data-location 仍然是 1

最佳答案

第一次使用 .data() 访问 data-* 属性时,该属性的值由 jQuery 在内部缓存,并且 .data() 从此使用缓存。使用.attr() 更新属性不会更新缓存,您需要使用.data() 来更新它。这就是为什么你需要使用

$(element).data('location', count);

更新它。

关于javascript - 在数据属性jquery中得到错误的值,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/28335833/

相关文章:

jquery - 根据当前年份在日期选择器中设置年份

javascript - Jquery - 使用 grep 搜索表的所有列?

javascript - 在 React 15 中嵌套 2 个内联 if 的最佳方法是什么?

javascript - 单个页面javascript中的多个选项卡

javascript - 如何处理异步函数?

asp.net - 如何在客户端使用 JavaScript 来使用远程 Web 服务?

javascript - Django 、jQuery。我无法在同一个 div 后多次加载()

javascript - Ajax不通过phonegap调用服务方法

javascript - PHP 中的 Jquery div 填充只是重定向到 PHP 页面?

javascript - 如何在页面刷新时保持单选按钮处于选中状态