怎么能点击a时避免body的事件冒泡??

html-css025

怎么能点击a时避免body的事件冒泡??,第1张

取消冒泡的代码在这里

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标记事件冒泡的问题了。