我有我的小提琴,但我不明白为什么它没有在“onmouseout”事件上调用我的函数。 http://jsfiddle.net/foreyez/Xf6LW/
有任何想法吗?
我有我的小提琴,但我不明白为什么它没有在“onmouseout”事件上调用我的函数。 http://jsfiddle.net/foreyez/Xf6LW/
有任何想法吗?
工作正常,您只需将函数放在文档的头部(或元素在 DOM 中之后的正文)。
这是因为当您选择 onLoad 选项时,您在 JavaScript 面板中创建的函数不是全局的。你的 JavaScript 被封装在一个函数中。
如果您确实希望它们是全球性的,您必须执行 j08961 建议的操作,通过更改该下拉列表以说没有包裹(身体或头部)将起作用
最好的解决方案是不要从 HTML 设置事件处理程序,无论如何这都是不好的做法,那么你就不会依赖全局函数或混合 HTML 和 JS。
<div id="myDiv">
</div>
document.getElementById('myDiv').onmousemove = function() {
alert('here');
}
旁注:您应该已经注意到控制台中的错误说 myFunc 未定义或类似的东西。
我认为这是 jsfiddle 的原因,它在 HTML 之后声明了所有 javascript。HTML 将运行并寻找 amyFunc
而不是找到它。然后它会加载 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。