2013-07-13 46 views
1

我知道這個問題之前回答了,在這裏:javascript:void(0) or onclick="return false" for <a> - which is better?如何在點擊後編寫運行javascript函數的非可點擊鏈接?

但是,該解決方案並不適用於我。

這裏的應用代碼:

HTML:

<a id="Skip">Skip</a> 

的Javascript:

var Skip = document.getElementById("Skip"); 
    Skip.addEventListener('click', reloadPage(), true); 

    function reloadPage() { 
     window.location.href = "play.php"; 
    } 

當我點擊 「跳過」,沒有任何反應。我想保留window.location.href重新加載的方法,因爲我想爲它添加$ _GET變量。

+0

'href =「#」'並使用'return false'來停止將#添加到瀏覽器中的url。 – Sir

+2

在Javascript中,您需要注意功能()或功能 – well

回答

6
Skip.addEventListener('click', reloadPage(), true); 
//          ^^------------------- 

應該是:

Skip.addEventListener('click', reloadPage, true); 

你要回調是reloadPage不是reloadPage回報。

+0

這仍然不會執行任何操作。這是一個帶有測試代碼的jsFiddle。 http://jsfiddle.net/m2B2M/1/ – JVE999

+1

JSFiddle不工作,因爲你有一個語法錯誤 - getElementByID而不是getElementById。檢查一下 - 它正在工作。它不會重定向到http://www.google.com,因爲它違反了相同的原產地政策,但我投入了一個警示,告訴您代碼正在被調用。 http://jsfiddle.net/m2B2M/3/點擊它會提醒,如果你看到一個控制檯,你會得到一個錯誤,如「拒絕在框架中顯示'https://www.google.com/',因爲它將'X-Frame-Options'設置爲'SAMEORIGIN'。「 (在Chrome上),但它應該適合你。 –

+0

好的。這個答案與幾個修復(我不知道每個被對待不同)修復它!謝謝。 – JVE999

2

基本上你有傳遞函數指針addEventListener。所以當點擊發生時,它會調用該方法。你不想調用的方法堂妹表示不返回任何

對於如:

Skip. addEventListener('click', reloadPage, true); 

你也可以做像什麼你寫,但只有當你的方法返回另一個功能

爲如

Skip. addEventListener('click', reloadPage(), true); 
function reloadPage() { 
    return function(){ 
     // do something interesting. 
    } 
}