Ich habe ein Div mit Datenattributen
<div class='p1' data-location='1'></div>
Ich habe ein Skript wie dieses
$('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(); });
Mit dem obigen Skript wird die Datenpositionseigenschaft auf 10 aktualisiert, aber wenn ich erneut auf die Schaltfläche klicke, ist die Datenposition immer noch 1
第一次使用
.data()
访问data-*
属性时,该属性的值由 jQuery 内部缓存,并且.data()
从那时起就使用缓存。使用.attr()
更新属性不会更新缓存,您需要使用.data()
来更新它。这就是为什么你需要使用更新它。