2015-10-03 152 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%' 
    }); 
});