缩短函数以避免if语句

时间:2014-09-28 13:40:20

标签: jquery function if-statement

如何缩短此功能,因此我不需要这些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();
        }
    });
}

2 个答案:

答案 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代码的问题在于,当我们隐藏所有内容时,切换工作意外。

DEMO

相关问题