[英]Mouse Events on JsFiddle not working?
工作正常,您只需要將函數放在文檔的頭部(或元素在DOM中之后的主體)中。
這是因為當您選擇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。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.