我有什么方法可以通过不使用:hover并且不在所有元素中添加“onmouseover和onmouseout”,就像在脚本中设置onmouseover和onmouseout所有输入元素的有效方式。
注意:在尝试使用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>
答案 0 :(得分:1)
不是我推荐这个,但您可以尝试在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小提琴(背景颜色变化)http://jsfiddle.net/Rcgx5/
答案 1 :(得分:0)
使用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 */})
答案 2 :(得分:0)
你可以试试这个
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';
};
};