下面代码中想要让第二个ul用起来的效果与第一个ul一样
也就是想达到当触发了第二个ul中的li的mouseover事件后
再进入这个li的span时不会打断li的mouseover事件
要如何达到呢?谢谢啦<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
</head> <body>
<ul>
<li>123</li>
<li>123</li>
<li>123</li>
</ul>
<ul>
<li><span>1</span><span>2</span><span>3</span></li>
<li><span>1</span><span>2</span><span>3</span></li>
<li><span>1</span><span>2</span><span>3</span></li>
</ul>
<script type="text/javascript">
var lis = document.getElementsByTagName('li');
var spans = document.getElementsByTagName('span');
for (var i = 0; i < lis.length; i++) {
lis[i].onmouseover = function(e) {
this.style.border = '1px solid #999';
console.log('li over');
};
lis[i].onmouseout = function(e) {
this.style.border = '0px solid #999';
console.log('li out');
}
};
for (var i = 0; i < spans.length; i++) {
spans[i].onmouseover = function(e) {
this.style.border = '1px solid #999';
console.log('span over');
};
spans[i].onmouseout = function(e) {
this.style.border = '0px solid #999';
console.log('span out');
}
};
</script>
</body>
</html>
也就是想达到当触发了第二个ul中的li的mouseover事件后
再进入这个li的span时不会打断li的mouseover事件
要如何达到呢?谢谢啦<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title> new document </title>
</head> <body>
<ul>
<li>123</li>
<li>123</li>
<li>123</li>
</ul>
<ul>
<li><span>1</span><span>2</span><span>3</span></li>
<li><span>1</span><span>2</span><span>3</span></li>
<li><span>1</span><span>2</span><span>3</span></li>
</ul>
<script type="text/javascript">
var lis = document.getElementsByTagName('li');
var spans = document.getElementsByTagName('span');
for (var i = 0; i < lis.length; i++) {
lis[i].onmouseover = function(e) {
this.style.border = '1px solid #999';
console.log('li over');
};
lis[i].onmouseout = function(e) {
this.style.border = '0px solid #999';
console.log('li out');
}
};
for (var i = 0; i < spans.length; i++) {
spans[i].onmouseover = function(e) {
this.style.border = '1px solid #999';
console.log('span over');
};
spans[i].onmouseout = function(e) {
this.style.border = '0px solid #999';
console.log('span out');
}
};
</script>
</body>
</html>
li over
li out鼠标经过第二个ul中的一个li并且经过其三个span后日志如下:
li over
li out # 在触发span的mouseover前先触发了li的out
span over
li over # 当span的over结束后li的over被再次触发
# 我希望进入li和出来li都只触发一次over和out而不会被span的over打断
span out
li out
span over
li over
span out
li out
span over
li over
span out
li out
li over
li out这样可以了解打断的意思吗?谢谢啦
e = e || window.event;
if(window.event){
e.cancelBubble = ture;
}else{
e.stopPropagation();
}
} spans[i].onmouseover = function(e) {
stopPropagation(e)
...
};
spans[i].onmouseout = function(e) {
stopPropagation(e);
...
}
不过话说回来~~你这需求很奇怪啊
http://xuganggogo.javaeye.com/blog/538476