将变量作为参数从一个函数传递给多个函数

时间:2012-05-15 13:19:19

标签: javascript

在我的脚本中,我有一个函数createEl(),我在其中声明了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";
}

2 个答案:

答案 0 :(得分: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 :(得分: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";
}