我在这里得到了小提琴,但我无法理解为什么它不会在'onmouseout'事件上调用我的函数。 http://jsfiddle.net/foreyez/Xf6LW/
任何想法?
答案 0 :(得分:3)
工作正常,你只需要将函数放在文档的头部(或元素在DOM之后的主体)中。
<强> jsFiddle example 强>
答案 1 :(得分:3)
这是因为当您选择了onLoad选项时,您在JavaScript面板中创建的功能不是全局的。您的JavaScript包含在函数中。
如果你确实希望它们是全球性的,你必须要么做j08961所建议的,通过改变该下拉菜单说没有包裹(身体或头部)将起作用
最好的解决方案是不要将你的事件处理程序设置为HTML,这是不好的做法,然后你不依赖于全局函数或混合HTML和JS。
<div id="myDiv">
</div>
document.getElementById('myDiv').onmousemove = function() {
alert('here');
}
旁注:你应该注意到控制台中的错误,说myFunc是未定义的或类似的东西。
答案 2 :(得分:0)
我认为这是jsfiddle的原因,它在HTML之后声明了所有的javascript。 HTML将运行并查找myFunc
但找不到它。然后它将加载JS,它甚至不会运行它。
答案 3 :(得分:0)
将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
答案 4 :(得分:0)
您可以在此处看到更改:jsfiddle.