2015-10-03 110 views
-4

这里是我的代码:如何让这个JS代码更短?

$(function() { 
$('#fadeinright').waypoint(function(direction) { 
    if (direction === 'down') { 
     $(this).removeClass("fadeinright"); 
    } 
}); 
$('#fadeinleft').waypoint(function(direction) { 
    if (direction === 'down') { 
     $(this).removeClass("fadeinleft"); 
    } 
}); 
    $('#fadeintop').waypoint(function(direction) { 
    if (direction === 'down') { 
     $(this).removeClass("fadeintop"); 
    } 
}); 
$('#fadeinbottom').waypoint(function(direction) { 
    if (direction === 'down') { 
     $(this).removeClass("fadeinbottom"); 
    } 
}); 
$('#simplefadein').waypoint(function(direction) { 
    if (direction === 'down') { 
     $(this).removeClass("simplefadein"); 
    } 
}); 

是否有人知道如何使它更短? 我即将添加更多的类,并且我不确定它是否正确执行代码。

这里有一个例子是如何工作的:https://jsfiddle.net/nbgdzspy/35/

+1

如果此代码的工作可能最好放置在HTTP:/ /codereview.stackexchange.com/。 – Andy

+0

会[this](https://jsfiddle.net/nbgdzspy/36/)工作吗? – ieaglle

+0

你的整体做法似乎很奇怪。为什么每个元素都属于与元素ID相同名称的类?那么为什么你想要删除班级?我认为你可能有某种XY问题。 。 。 – ruakh

回答

3

我的变种

$('#fadeinright, #fadeinleft, #fadeintop, #fadeinbottom, #fadeinbig, #fadeinsmall').waypoint(function(direction) { 
     if (direction === 'down') { 
      $(this).removeClass($(this).attr('id')); 
     } 
}); 
3

这里有一种方法:

['fadeinright', 'fadeinleft', 'fadeintop', 'fadeinbottom', 'fadeinbig', 'fadeinsmall'].forEach(function (name) { 
    $('#' + name).waypoint(function (direction) { 
     if (direction === 'down') { 
      $(this).removeClass(name); 
     } 
    }, { 
     offset: '100%' 
    }); 
});