JavaScript-不使用:hover为多个元素设置onmouseover
JavaScript - Set onmouseover for multiple elements without using :hover
有没有什么方法可以做到这一点,不使用:悬停,也不在所有元素中添加"onmouseover和onmouseout",就像脚本中为所有输入元素设置onmousever和onmouse out的有效方法一样。
注意:在尝试JQuery 之前,请先尝试使用JavaScript
<head>
<title>123</title>
<style>
.button {
color: red;
}
.button:hover {
color: blue;
}
</style>
</head>
<body>
<div>
<input class="button" type="button" value="1">
<input class="button" type="button" value="2">
<input class="button" type="button" value="3">
</div>
</body>
使用input
标签循环所有元素
a=document.getElementsByTagName('input')
for (i in a){
a[i].onmouseover=function(){/* code goes here */}
a[i].onmouseout=function(){/* code goes here */}
}
使用jQuery:
$('input').on('mouseover',function(){/* code goes here */}).on('mouseout',function(){/* code goes here */})
我不建议这样做,但您可以尝试在body元素上放置mouseover
的事件处理程序,然后使用event.target
/event.srcElement
来确定是否要处理事件
document.body.addEventListener("mouseover",function(e) {
e = e || window.event;
var targetElem = e.target || e.srcElement;
// you can use a switch on the nodeName and handle event
switch(targetElem.nodeName) {
case 'INPUT':
// do something
break;
}
},false);
JS Fiddle示例(背景颜色发生变化)http://jsfiddle.net/Rcgx5/
你可以试试这个
window.onload=function(){
document.onmouseover=function(e){
var e = e || window.event, el = e.target || el.srcElement;
if(el.type == 'button') el.style.color='red';
};
document.onmouseout=function(e){
var e = e || window.event, el = e.target || el.srcElement;
if(el.type == 'button') el.style.color='black';
};
};
演示
相关文章:
- 使用 JavaScript 一次为一个元素设置多个属性
- 为dropdownlistfor(MVC)中的每个元素设置唯一id
- 无法为HTML5中具有画布和图像的可拖动元素设置“拖动图像”
- Jquery为每个元素设置属性
- 在JSON数组中进行迭代,并为其元素设置样式
- 将jquery ui窗口的父元素设置为另一个元素
- 如何使用随机css id为元素设置样式
- 如何为所有子元素设置填充
- Javascript:为元素设置适当的事件处理程序
- 为已设置动画的元素设置动画
- 将HTML元素设置为可滚动
- jQuery:从 JSON 对象为元素设置值
- 如何为 HTML 中的多个元素设置相同的 ID
- 为动态创建的元素设置属性
- 同时为一个 Li 元素设置类“活动”
- 如何使用 javascript 为元素设置内联 css 样式
- 如何为动态添加的 html 元素设置 setCustomValidity()
- 为包含 HTML 标记的字符串中的元素设置 Style 属性
- 获取两个元素的高度,将另一个元素设置为该高度
- 为表单元素设置 Cookie