簡體   English   中英

JsFiddle上的鼠標事件不起作用?

[英]Mouse Events on JsFiddle not working?

我在這里擺弄我的小提琴,但是我不明白為什么它沒有在“ onmouseout”事件上調用我的函數。 http://jsfiddle.net/foreyez/Xf6LW/

有任何想法嗎?

工作正常,您只需要將函數放在文檔的頭部(或元素在DOM中之后的主體)中。

jsFiddle示例

這是因為當您選擇onLoad選項時,您在JavaScript面板中創建的函數不是全局的。 您的JavaScript被包裝在一個函數中。

如果您確實希望它們具有全局性,那么您必須按照j08961的建議進行操作,方法是更改​​該下拉列表以使其不起作用(身體或頭部)

最好的解決方案是不要從HTML設置事件處理程序,這仍然是不明智的做法,那么您就不必依賴全局函數或混合使用HTML和JS。

<div id="myDiv">
</div>​
document.getElementById('myDiv').onmousemove = function() {
  alert('here');
}

旁注:您應該已經注意到控制台中的錯誤,指出未定義myFunc或類似的東西。

我認為這是jsfiddle的原因,它在HTML之后聲明了所有JavaScript。 HTML將運行並尋找myFunc並找不到它。 然后它將加載JS,甚至不會運行它。

使myFunc作為全局函數;

我使用firebug搜索了我的代碼,並得到了生成的代碼。

window.addEvent('load', function() {
    //window.myFunc makes myFunc as a global function
    // It can be accessed from any were inside current window.
   window.myFunc = function myFunc(x)
   {
        alert('yo');
   }
    // function below is not available gloably.
    function myFunct1(){
        alert('yo1');
    }
});

jsfiddle

在這里,您可以看到更改: jsfiddle。

暫無
暫無

聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.

 
粵ICP備18138465號  © 2020-2024 STACKOOM.COM