怎么禁用特定div触发事件函数?
function divEvent(divID)
{
var div = document.getElementById(divId);
.......................//对div的控制省略
div.onmouseover = showBorder; //当鼠标移动到div上的时候显示border
div.onmouseout = hiddenBorder; //鼠标离开时隐藏border
div.onmousedown = startMove; //这三个是用来拖动这个层的。。
div.onmousemove = processMove;
div.onmouseup = stopMove;
function showBorder(evt)
{
div.style.border="dotted 1px black";
div.style.cursor = "move";
}
function hiddenBorder(evt)
{
div.style.border = "solid 0px black";
div.style.cursor = "default";
}
function startMove(evt)
{
}
function processMove(evt)
{
}
function stopMove(evt)
{
}
}
在一个父div里面,有好几个子div。
分别对这几个子div执行divEvent(divID),他们的事件处理程序都一样了。。
目的就是鼠标放在某个子层上的时候,该层就会显示边框,醒目一点,然后可以拖动。。只有一个div的话肯定没有什么问题,可是我这里有好几个div,拖动某个div的过程中,如果经过了其他div,就会触发其他div的onmouseover事件,就拖不下去了,有没有什么办法让拖动一个div的时候,让其他的div不能响应事件呢,这样就可以让这个div正确的处理拖动,等这个拖动结束了,再让其他的div可以响应事件。
------解决方案--------------------
div.onmousedown = startMove; //这三个是用来拖动这个层的。。
div.onmousemove = processMove;
div.onmouseup = stopMove;
在startmove里给div设置一个值比如canmove=true
然后在processmove里判断该值如果canmove则可以移动否则返回不能移动,
最后在stopmove里设置canmove=false
------解决方案--------------------嗯,基本思路就是自定义一个变量,来指示当前是否有div处于被拖动状态