2013-02-22 51 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