鼠标悬停在整个页面上工作,而不是一个元素
Mouseover working on whole page instead of one element?
我是网络编程的初学者,不幸的是我已经遇到了问题。我想使用原型的鼠标悬停(鼠标退出)功能来添加或删除类,但由于某种原因,警报(用于调试)在页面的第一次加载时显示。我知道这一定是荒谬的,但我看不出问题所在。我希望只有当我使用类"菜单"检查对象时才会发出警报。
这是我的代码:
window.onload = function(){
var menuitems = $$('.menu');
for(var i = 0;i < menuitems.length;i++){
menuitems[i].observe("mouseover",alert("over"));
menuitems[i].observe("mouseout",alert("out"));
}
}
附言。我在谷歌和stackoverflow上搜索了一下,但找不到类似的问题。如果我错了,请纠正我。
observe
方法的第二个参数应该是一个函数 - 通过实际调用alert()
,你只是在定义事件处理程序时(即页面加载时)发出警报,而不是在触发时。
试试这个:
window.onload = function() {
var menuitems = $$('.menu');
for(var i = 0; i < menuitems.length; i++) {
menuitems[i].observe("mouseover", function() {
alert("over");
});
menuitems[i].observe("mouseout", function() {
alert("out");
});
}
};
在那里,我已经内联定义了事件处理程序函数,但尚未调用它们。触发鼠标悬停/鼠标退出事件时将调用它们。或者,您可以提前定义函数:
window.onload = function() {
var handleMouseover = function() {
alert("over");
};
var handleMouseover = function() {
alert("out");
};
var menuitems = $$('.menu');
for(var i = 0; i < menuitems.length; i++) {
menuitems[i].observe("mouseover", handleMouseover);
menuitems[i].observe("mouseout", handleMouseout);
}
};
相关文章:
- 使用clickToggle并在单击另一个元素时关闭元素
- 表追加而不附加最后一个元素
- 滚动到容器中的下一个元素-几乎到了
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 按我自己的类克隆另一个元素的内容和顺序
- Javascript获取上一个元素的内容
- 如何通过HTML+CSS中的另一个元素Selector更改元素的属性值
- 在数组中的一个元素上设置多个值
- 无法选择除一个元素外的所有元素
- 使用jquery contains获取一个元素并添加类
- $(.class).empty总是缺少一个元素
- jQuery-将列表项的一个元素移动到同一项的另一个元素中+对我的列表中的每个项执行此操作
- 如何在一个元素动画之后延迟
- jQuery转盘下一个元素没有滑入
- jquery从另一个元素中移除移除
- DIV怎么能像Javascript中的另一个元素一样工作呢
- 当知道同一hiearch中至少有一个元素时,遍历到元素.结构使用jquery
- 使用数据属性将HTML数据复制到另一个元素
- 如何选择给定类的上一个元素
- 动态修改一个元素,使其与给定的选择器匹配