在我的脚本中,我有一个函数createEl()
,我在其中声明了2个变量,并调用另外两个函数将这些声明的变量传递给这两个函数。
通过点击一个链接,第一个函数应该添加10px到divp
的高度。通过点击另一个链接,第二个函数应该从div
的高度中扣除10px。
虽然没有按预期工作。我相信我必须以不同的方式从我的第一个函数中调用这两个函数?现在结果是我总是扣除了点击那些10px的链接。请帮忙。
P.S。我正在寻找一个没有全局变量的选项,而只是将变量作为参数从一个函数传递给多个函数。
HTML:
<a href="" onclick="createEl();return false;">Larger</a>
<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";
}
答案 0 :(得分:3)
更新HTML以向函数调用发送标识符参数。
<a href="" onclick="createEl('large');return false;">Larger</a>
<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>
<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";
}