我有一个带有数据属性的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/