2017-05-30 108 views
0

我不確定如何在JavaScript中解決這個問題,所以我討論了「動態變量」。如果還有更好的辦法,請告訴我!在函數中使用「動態變量」

由於是一個參數(左或右)的函數:

var footerMenuLeftOpen = true; 
 
var footerMenuRightOpen = true; 
 

 
function footerMenu(menuName, className) { 
 

 
    if (menuName) { 
 
    $('.content-' + className).animate({ 
 
     height: "+=28px", 
 
    }, { 
 
     duration: 100 
 
    }); 
 
    return false; 
 
    } else { 
 
    $('.content-' + className).animate({ 
 
     height: "-=28px", 
 
    }, { 
 
     duration: 100 
 
    }); 
 
    return true; 
 
    } 
 
} 
 

 

 
$(".content-left").click(function() { 
 
    footerMenuLeftOpen = footerMenu(footerMenuLeftOpen, 'left'); 
 
}); 
 
$(".content-right").click(function() { 
 
    footerMenuRightOpen = footerMenu(footerMenuRightOpen, 'right'); 
 
});
.content-left { 
 
    width: 200px; 
 
    height: 100px; 
 
    background-color: red; 
 
    display: inline-block; 
 
} 
 

 
.content-right { 
 
    width: 200px; 
 
    height: 100px; 
 
    background-color: blue; 
 
    display: inline-block; 
 
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script> 
 
<div class="content-left"> 
 

 
</div> 
 

 
<div class="content-right"> 
 

 
</div>

現在我想添加代碼,在高度的變化(+/- 28px)取決於在紅色或藍色框的高度。 因此,我想在盒子顯示後儘快檢查盒子的起始高度。

例如:

if ($('.content-left').height() > 42) { 
    LeftHeight: "+=28px", 
} else if ($('.footer-button-box.left').height() > 28) { 
    LeftHeight: "+=14px", 
} else { 
    LeftHeight: "+=5px", 
} 

但我怎麼現在改功能「footerMenu」的高度值,以便從IF函數關於所確定的值,高度的變化?

我因子評分關於類似

$('.content-' + className).animate({ 
     height: className+Height, 
    }, { 
     duration: 100 
    }); 

...其中,類名是「左」加術語「高度」;所以離開了高度。

我想有一種更好的解決方案,使其工作只有一個優雅的功能?

在此先感謝!

編輯:由於我的問題是很難理解,在簡單的話:

我有變量「leftHeight」和「rightHeight」。 現在:我如何從一個函數中訪問這些變量,其中left/right是參數的值?

目標:高度:leftHeight

理念:高度:類名+「高度」

...所以如何使用功能變量名稱的一部分的參數的值?

+0

'if'不是一個函數,不返回任何東西。使用三元運算符,並將它們放置在屬性值的位置。 – Bergi

+0

不知道你想在這裏做什麼,但如果你想,你可以看看flexbox,我認爲它可以滿足你的要求..沒有jS –

回答

0

我自己找到了解決方案:我不得不使用對象。

var footerMenuHeight = new Object(); 

if ($(".content-left").height() > 40) { 
    footerMenuHeight.left = 200; 
} else if ($(".content-left").height() > 30) { 
    footerMenuHeight.left = 18; 
} else { 
    footerMenuHeight.left = 8; 
} 

所以我能夠使用該參數來訪問這個對象的值:

footerMenuHeight[className] 
+0

在JavaScript中使用'{}'而不是'new對象()'。 –