JavaScript多字符串if function

时间:2014-06-25 18:46:29

标签: javascript

我正在尝试从最初仅用于一个的代码创建4个画廊。我承认我几乎不知道JavaScript是一个自学成才的初学者。我遇到的问题是,当我在字符串中添加超过“照片”时,所有4个画廊都会退出工作。我毫不怀疑这是一个简单的语法修复但我无法找到它,也许我甚至不知道做一个正确的搜索,但我希望这里有人可以提供帮助。

function showPanel(el){
    $('section').slideUp('fast');
    $('section#'+el).slideDown(1500);

    if (el == 'photos' && 'graphics' && 'web' && 'books') {
        $('a.works').fancybox({'titlePosition' : 'inside'});
        $('a.works.iframe').fancybox({ 'type' : 'iframe', 'titlePosition'   : 'inside'})

        $('#da-thumbs > article').hoverdir();

        $('#filter a').on('click', function(){
            $('#filter a').removeClass('active');
            $(this).addClass('active');
        });


        filter();

    } else if(el == 'about') {

        $('.about .avatar').remove();
        $('.home .avatar').clone().appendTo('.about #avatar');

        $('.chart').easyPieChart({
            animate : 500,

            // ----------------------------
            // Custom your chart color here
            // ----------------------------

            barColor : '#eb5b5e',
            size : 110
        });
    } else if(el == 'contact') {
        $('.gmap').mobileGmap();
    }

}

3 个答案:

答案 0 :(得分:3)

使用switch语句。在我的选择中,它更容易阅读。

switch (el) {
   case 'photos':
   case 'graphics':
   case 'web':
   case 'books':
     //do stuff
     break;
   case 'about':
     //do stuff
     break;
   case 'contact':
     //do stuff
     break;
}

答案 1 :(得分:1)

if else块中,您需要传递bool值。否则它就不会起作用。所以,当你传递一个值。它一定是这样的

 if (el == 'photos' && 'graphics' && 'web' && 'books') {

这意味着,如果el变量等于照片和图形,那么现在编译器不会理解你试图告诉它的内容。 String != Bool

将条件更改为此

 if (el == 'photos' && el == 'graphics' && el == 'web' && el == 'books') {

这会将每个条件更改为bool(true或false),然后执行代码块。如果el等于照片图片网和书籍。

但是,变量不能容纳4个值。

所以你可以把它写成

 if (el == 'photos' || el == 'graphics' || el == 'web' || el == 'books') {

它将检查el是否具有所提及的值中的任何值。

答案 2 :(得分:1)

尝试

if ((el == 'photos') || (el == 'graphics') || (el == 'web') || (el == 'books')) {