2013-02-22 57 views
1

我一直有一段时间的问题,我似乎无法理解如何解决它,我不知道我做错了什么。错误javascript中的onclick事件

我要做的是当我点击网站上的一个链接时,它需要弹出一个计算器,然后当我点击该计算器上的关闭按钮时,它应该再次消失。我究竟做错了什么!?!? (注:calcButton是一个链接,buttonOff是一个按钮)

function showCalc() 
{ 
    alert("button was clicked"); 
    document.getElementById('calculator').style.visibility = "visible"; 
} 

function hideCalc() 
{ 
    alert("off button was clicked"); 
    document.getElementById('calculator').style.visibility = "hidden"; 
} 

function main() { 
    //store top and left values of calculator 
    calculator.style.top = getStyle(calculator, "top"); 
    calculator.style.left = getStyle(calculator, "left"); 

    document.getElementById('calcButton').onclick = showCalc; 
    document.getElementById('buttonOff').onclick = hideCalc; 

} 

window.onload = main; 

编辑:

这里是获取样式方法:

function getStyle(object,styleName) 
{ 
    if (window.getComputedStyle) 
    { 
     return document.defaultView.getComputedStyle(object, null).getPropertyValue(styleName); 
    } 
    else if (object.currentStyle) 
    { 
     return object.currentStyle[styleName]; 
    } 
} 

EDIT2:

计算器按钮(这是一个href)

<a href="" id= "calcButton">Calculator</a> 

此外,我不认为有些人理解的问题是什么。问题是,当我点击计算器变成可见的,然后再隐藏几乎瞬间

+0

我想你设置了'onclick'错误。应该是:'document.getElementById('calcButton')。onclick = showCalc();'和 'document.getElementById('buttonOff')。onclick = hideCalc();' – turnt 2013-02-22 03:56:17

+2

@Cygwinnian:不,它不是。 'onclick'应该是一个函数的引用,而'showCalc()'运行该函数并且具有函数返回值的值。 – 2013-02-22 03:59:56

+1

你的浏览器的JavaScript控制台有任何错误吗? – 2013-02-22 04:01:01

回答

1
<a href="" id= "calcButton">Calculator</a> 

这将导致该链接实际上重新载入网页,让你看起来计算器出现,然后“立即揣回” ,因为该页面已被重新加载。

添加一些东西到href属性:

<a href="javascript:void();" id= "calcButton">Calculator</a> 

Live demo

+0

非常感谢您的帮助!你不知道我为了哈哈拉了多少头发。 – Mettalknight 2013-02-22 04:21:58