从Javascript中删除重复部分(干式)
我有下面的javascript切换不同的视图。所有的工作都很好,但是它是非常重复的。我想把它清理干净,但不知道该怎么做从Javascript中删除重复部分(干式),javascript,Javascript,我有下面的javascript切换不同的视图。所有的工作都很好,但是它是非常重复的。我想把它清理干净,但不知道该怎么做 function switchView () { var viewContainer = document.getElementById('content-wrapper'); var tileBtn = document.getElementById('tile-btn'); var listBtn = document.getElementById
function switchView () {
var viewContainer = document.getElementById('content-wrapper');
var tileBtn = document.getElementById('tile-btn');
var listBtn = document.getElementById('list-btn');
var swipeBtn = document.getElementById('swipe-btn');
tileBtn.addEventListener( 'click', function(e){
if (viewContainer.classList.contains('list-view') ||
viewContainer.classList.contains('swipe-view') ) {
e.preventDefault();
viewContainer.classList.remove('list-view');
viewContainer.classList.remove('swipe-view');
viewContainer.classList.add('tile-view');
}
});
listBtn.addEventListener( 'click', function(e){
if (viewContainer.classList.contains('tile-view') ||
viewContainer.classList.contains('swipe-view') ) {
e.preventDefault();
viewContainer.classList.remove('tile-view');
viewContainer.classList.remove('swipe-view');
viewContainer.classList.add('list-view');
}
});
swipeBtn.addEventListener( 'click', function(e){
if (viewContainer.classList.contains('list-view') ||
viewContainer.classList.contains('tile-view') ) {
e.preventDefault();
viewContainer.classList.remove('list-view');
viewContainer.classList.remove('tile-view');
viewContainer.classList.add('swipe-view');
}
});
};
switchView();
如果您有工作代码,并且希望对其进行优化或性能审查,那么codereview是最好的地方。'if'子句是不必要的——最坏的情况是,您将删除一个类,然后重新添加它,这是无害的——所以只需删除它即可。之后,除了要添加的类名之外,函数都是相同的,所以将它们组合成一个带有该类名参数的函数。(也就是说,@RaviChandra是正确的;codereview是解决这个问题的更合适的地方)谢谢@RaviChandra和Daniel,我将在那里发布它