如何缩短此功能,因此我不需要这些if
?
function showhide(element) {
$('body').on('click', '#'+element, function() {
if(element == 'export') {
$('.chat-export').toggle();
$('.chat-settings').hide();
$('.chat-users').hide();
} else if(element == 'settings') {
$('.chat-export').hide();
$('.chat-settings').toggle();
$('.chat-users').hide();
} else if(element == 'users') {
$('.chat-export').hide();
$('.chat-settings').hide();
$('.chat-users').toggle();
}
});
}
答案 0 :(得分:4)
您可以使用此regex
选择器代码段来避免这种情况,例如:
$( 'div:regex(class, .chat-*)' ).hide();
$( '.chat-' + element ).toggle();
答案 1 :(得分:3)
这样做:
$('[class^=chat]').each(function(){
if($(this).attr("class").indexOf(element) > -1){ $(this).toggle(); }
else { $(this).hide(); }
});
PS。我的早期代码和antyrat代码的问题在于,当我们隐藏所有内容时,切换工作意外。