2012-05-15 94 views
1

在我的劇本我有一個功能createEl()這裏我聲明兩個變量,並調用2種通過這些聲明的變量,以那些2個功能之外的功能。傳遞變量從一個函數參數的多種功能

通過點擊一個鏈接第一個功能是應該爲10px添加到divp的高度。通過點擊另一個鏈接,第二個功能應從div的高度扣除10px。

如同預期它不工作。我相信我必須以不同的方式從我的第一個函數中調用這兩個函數?現在結果是,我點擊這些10px的鏈接總是被扣除。請幫忙。

P.S.我正在尋找一個沒有全局變量的選項,而只是將變量作爲參數從一個函數傳遞到多個函數。

HTML:

<a href="" onclick="createEl();return false;">Larger</a>&nbsp;&nbsp; 
<a href="" onclick="createEl();return false;">Smaller</a> 

<div id='box'></div> 

的JavaScript:

function createEl() { 
    var x = document.getElementById('box'); 
    var h = x.offsetHeight; 

    large(x,h); 
    small(x,h); 
} 

function large(x,h) { 
    x.style.height = h + 10 + "px"; 
} 

function small(x,h) { 
    x.style.height = h - 10 + "px"; 
} 

回答

3

更新你的HTML的標識參數發送到函數調用。

<a href="" onclick="createEl('large');return false;">Larger</a>&nbsp;&nbsp; 
<a href="" onclick="createEl('small');return false;">Smaller</a> 
<div id='box'></div> 

的JavaScript:

function createEl(funcName){ 

     var x = document.getElementById('box'); 
     var h = x.offsetHeight; 

     if(funcName =="large") large(x,h); //depending on the parameter call the required function 
     else small(x,h); 
} 
+1

也可能是值得一提的是,功能'large'和'small'可以的'createEl'範圍,如果他們是內部聲明不從其他地方打電話。 – jbabey

2

你可以通過偏移作爲參數,並創建一個通用的changeHeight(offset)功能。

這是否符合您的要求?

HTML:

<a href="" onclick="changeHeight(10);return false;">Larger</a>&nbsp;&nbsp; 
<a href="" onclick="changeHeight(-10);return false;">Smaller</a> 
<div id='box'></div> 

的JavaScript:

changeHeight(offset) { 
    var x = document.getElementById('box'); 
    x.style.height = (x.offsetHeight + offset) + "px"; 
}