我想要做的是每次滚动时调用一个函数来检查当前容器的类,并将+1添加到当前数据属性的当前值,然后相对于数据属性切换类目前正在改变滚动类,但给出了一个" NaN。我已经在点击上运行此功能,它工作正常。
这是一个小提琴。
这是我在滚动
上的功能var timeout;
$(window).scroll(function() {
if(typeof timeout == "number") {
window.clearTimeout(timeout);
delete timeout;
}
timeout = window.setTimeout( check, 100);
});
我的HTML看起来像这样
<div class="container year-1987" data-year-index="1987">
Some Content
</div>
我现在正在调用的功能,我觉得应该有效..
function check(){
var
animationHolder = $('.container'),
currentClass = animationHolder.attr("class").match(/year[\w-]*\b/);
var goToYear = $('.container').data('year-index');
var goToYear2 = parseInt(goToYear,1000) + 1;
animationHolder.toggleClass(currentClass + ' year-' + goToYear2);
animationHolder.attr('data-year-index', goToYear2);
}
点击
我的工作代码$("a").click(function (e) {
e.preventDefault();
var
animationHolder = $('.container'),
currentClass = animationHolder.attr("class").match(/year[\w-]*\b/);
var goToYear = $(this).data('year-index');
animationHolder.toggleClass(currentClass + ' year-' + goToYear);
animationHolder.attr('data-year-index', goToYear);
答案 0 :(得分:0)
我重新编写了check
方法:
function check() {
var $container = $('.container'),
currentYear = $container.data('m-index'),
nextYear = 1 + currentYear;
$container.removeClass('m-' + currentYear).addClass('m-' + nextYear);
$container.data('m-index', nextYear);
}
我做了以下更改:
year-index
需要更多逻辑。m-index
更新.data()
,而不是设置数据属性。这种方法对我来说似乎没问题。