2012-10-20 45 views
1

此代碼調用f()功能:爲什麼我不能直接分配一個函數?

<p id="firstp">Hello!</p> 
<script> 
    function f() { 
    doSomething(); 
    }; 
    document.getElementById("firstp").onmouseover = function() { 
     f(); 
    }; 
</script> 

然而,如果我這樣寫,它停止工作:

document.getElementById("firstp").onmouseover = f(); 

爲什麼沒有事件處理時得到我直接調用該函數設置?

回答

6

因爲你不想調用這個函數,所以你只想告訴瀏覽器它應該在mouseover事件發生時調用它。 f()(函數名稱後面的圓括號)調用該函數並將其分配給.onmouseover什麼f返回。你想分配參考f.onmouseover,所以你要找的是

document.getElementById("firstp").onmouseover = f; 
相關問題