div层次嵌套问题
2012-08-06 22:46
169 查看
今天遇到一个问题,就是在外层div上设置监听函数:
onmousemove="changeI()" onmouseover="changeJ()" onmouseout="changeK()
但是当鼠标在该div内部移动时会触发onmouseout函数,但是我的鼠标没有移开外层div的范围啊,怎么会调用onmouseout函数呢?
原来div是嵌套关系的,当鼠标移动到内层div管辖的范围时,就是出了外层div的监听范围,所以会调用onmouseout函数。
有一个办法可以解决这个问题,就是为这个外层div创建一个兄弟div,也就是并行的意思,大小和该div一样,然后调整样式
使这个兄弟div完全罩住刚刚的外层div,这样对这个兄弟的div设置监听:onmousemove="changeI()" onmouseover="changeJ()" onmouseout="changeK()
就可以达到效果了。但是代价就是原来div内部的触发都无效了。
--------------------------------------2012.08.07
今天又查了一下,发现了一个更好的办法:
function d_2(obj,e)
{
var e = window.event || e, relatedTarget = e.toElement || e.relatedTarget;
while(relatedTarget && relatedTarget != obj)
relatedTarget = relatedTarget.parentNode;
if(!relatedTarget)
{
obj.className="haha";
document.getElementById('k').innerHTML = k++;
}
}
onmouseover="d_2(this,event)" onmouseout="changeK()
这个函数的功能是判断移出区域时,移出的div是否是当前div,如果是就进行相应的操作。
当然移入也是可以调用这个函数的,只是要改一下:
if(!relatedTarget)
{
obj.className="haha";
document.getElementById('k').innerHTML = k++;
}
里面的内容,让他做移入的操作
onmousemove="changeI()" onmouseover="changeJ()" onmouseout="changeK()
但是当鼠标在该div内部移动时会触发onmouseout函数,但是我的鼠标没有移开外层div的范围啊,怎么会调用onmouseout函数呢?
原来div是嵌套关系的,当鼠标移动到内层div管辖的范围时,就是出了外层div的监听范围,所以会调用onmouseout函数。
有一个办法可以解决这个问题,就是为这个外层div创建一个兄弟div,也就是并行的意思,大小和该div一样,然后调整样式
使这个兄弟div完全罩住刚刚的外层div,这样对这个兄弟的div设置监听:onmousemove="changeI()" onmouseover="changeJ()" onmouseout="changeK()
就可以达到效果了。但是代价就是原来div内部的触发都无效了。
--------------------------------------2012.08.07
今天又查了一下,发现了一个更好的办法:
function d_2(obj,e)
{
var e = window.event || e, relatedTarget = e.toElement || e.relatedTarget;
while(relatedTarget && relatedTarget != obj)
relatedTarget = relatedTarget.parentNode;
if(!relatedTarget)
{
obj.className="haha";
document.getElementById('k').innerHTML = k++;
}
}
onmouseover="d_2(this,event)" onmouseout="changeK()
这个函数的功能是判断移出区域时,移出的div是否是当前div,如果是就进行相应的操作。
当然移入也是可以调用这个函数的,只是要改一下:
if(!relatedTarget)
{
obj.className="haha";
document.getElementById('k').innerHTML = k++;
}
里面的内容,让他做移入的操作
相关文章推荐
- css的div嵌套问题
- style中position div定位和嵌套问题
- DIV嵌套过程中的高度自适应问题
- div里嵌套了img底部会有白块问题和图片一像素问题解决
- div多层嵌套变直线问题
- div ul li 嵌套后如何解决增加多个li后DIV高度自适应问题
- div ul li 嵌套后如何解决增加多个li后ul高度自适应问题
- CSS(margin)问题嵌套div中margin-top转移
- FF浏览器嵌套div中margin-top转移问题的解决办法
- 关于在IE下li中嵌套DIV的问题
- 小菜学习日记—div嵌套导致子区域margin-top失效问题(外边距合并问题)
- div中嵌套div中使用margin-top失效问题
- div嵌套点击事件问题解决方法-阻止冒泡事件
- div ul li 嵌套后如何解决增加多个li后ul高度自适应问题
- IE8下div嵌套时,外层div高度不随内层div高度改变的问题解决
- table与div互相嵌套时,要注意的问题
- div里嵌套iframe,让iframe及div高度一起随内容自适应高度问题
- DIV多层嵌套margin-top的BUG问题
- 关于firefox不兼容DIV嵌套的问题
- div嵌套时背景图片不显示问题解决方法总结