function doSomething(e) {
if (!e) var e = window.event
e.cancelBubble = true
if (e.stopPropagation) e.stopPropagation()
}
不过你的问题不是a标签取消冒泡,而是除了a标签其他所有鼠标事件都要取消冒泡,
所以body_closeDiv()里面要判断事件从哪里来的,如果是从这个a标签过来的,才移除输入框。
判断函数在这里
function(e){
if (!e) var e = window.event
var relTarg = e.relatedTarget || e.toElement
if(relTarg不是特定的a标签){return}
//关闭代码在此
}
var 按钮=document...var div=document....
//点击按钮弹出div 在点击按钮关闭该div
按钮.onclick=function()
{
if(div.style.display=="none")
{
div.style.display="block"
}
else
{
div.style.display="none"
}
}
//点击其他地方关闭div
document.onclick=function()
{
div.style.display="none"
}
//为了防止点击div 也关闭div 所以这里要防止冒泡
div.onclick=function()
{
return false
}
希望对你有所帮助
今天在修改后台的一个模块,中发现一个button在点击时,触发了表单提交,我在onclick中加入了return,这个在提交之前就应该返回了,不该出现这个问题。转念一想,我觉得我应该时事件冒泡了,也就是一个子元素的事件触发了父元素的事件的触发。简单说一下,解决方案吧,对于button,如果在表单中,相当于submit一样的存在,加入type="button"这个,就可以不发生事件的冒泡了。在工作中我们还可以遇到html的a标记的事件冒泡的问题,如何防止a标记事件冒泡?首先对a标记加上 href="javascript:void(0)"这样就可以防止冒泡,然后把一些这个上面的操作,放到onclick方法中去操作,这样就可以解决a标记事件冒泡的问题了。