我有一个div类名“tw_marquee_scroller”。我想每1秒更新一次数据左值。例如,在第一秒中,值将是10,然后是20,30,40 .......我正在使用此代码,但它会一次又一次地返回10。这有什么问题?
jQuery(document).ready(function($){
$('.tw_marquee_scroller').attr('data-left', 0);
setInterval(function(){
var position = parseInt($('.tw_marquee_scroller').data('left'));
var new_position = position + 10;
$('.tw_marquee_scroller').attr('data-left', new_position);
console.log(new_position);
}, 1000);
});
答案 0 :(得分:2)
尝试使用data
而不是data()
撰写attr()
属性:
$('.tw_marquee_scroller').data('left', 0);
setInterval(function(){
var position = parseInt($('.tw_marquee_scroller').data('left'));
var new_position = position + 10;
$('.tw_marquee_scroller').data('left', new_position);
console.log(new_position);
}, 1000);
答案 1 :(得分:0)
为什么你没有以同样的方式获取价值?
print(i/1000)
答案 2 :(得分:0)
将该行中的data('left')
更改为:
var position = parseInt($('.tw_marquee_scroller').attr('data-left'))
它会起作用
答案 3 :(得分:0)
这是一种窗口污染较少的方法:
$( (function($) {
var scroller = $('.tw_marquee_scroller');
scroller.data('left', 0);
setInterval( function() {
scroller.data('left', parseInt( scroller.data('left'), 10 ) + 10 );
console.log( scroller.data("left") );
}, 1000 );
}(jQuery.noConflict())) )