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

Posted

tags:

篇首语:本文由小常识网(cha138.com)小编为大家整理,主要介绍了怎么能点击a时避免body的事件冒泡??相关的知识,希望对你有一定的参考价值。

<!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>
<meta http-equiv="Content-Type" content="text/html; charset=utf-8" />
<title>无标题文档</title>
<script type="text/javascript">
function appendElement(id)

var li = id.parentNode;
var div = document.createElement("div");
div.style.width="200";
div.style.height="80";
div.style.border="solid 1px #000000";
div.setAttribute("id","div1");
div.innerHTML="<textarea rows=\"2\" cols=\"10\" id=\"txaReserve\"></textarea><br /><input type=\"button\" value=\"确定\" />";
li.appendChild(div);

function body_closeDiv()
var div1 = document.getElementById("div1");
if(div1)
var li = div1.parentNode;
li.removeChild(div1);


</script>
<style type="text/css">
body,htmlwidth:100%; height:100%;
</style>
</head>

<body onmousedown="body_closeDiv();">
<ul><li>在哪呢?<a href="javascript:void(0);" onclick="appendElement(this);">回复</a></li>
<li>最近好吗?<a href="javascript:void(0);" onclick="appendElement(this);">回复</a></li>

</ul>
</body>
</html>

取消冒泡的代码在这里
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;
//关闭代码在此
参考技术A 我先涂skin然后把oil放6滴在cream中然后再涂上去。。。反正用了2个礼拜不到。。大腿效果超级好。。。。其他地方差点。。。我去买clarins的时候那个法国女的跟我说这个东西就是对腿效果好。。。。所以如果小套装的话就用来抹腿好了。。这样就不浪费了

以上是关于怎么能点击a时避免body的事件冒泡??的主要内容,如果未能解决你的问题,请参考以下文章

点击空白处隐藏div-阻止事件冒泡

jquery的mouseover方法如何阻止事件冒泡

阻止冒泡

js 事件捕获与事件冒泡例子

jQuery之防止冒泡事件

jQuery之防止冒泡事件,冒泡事件就是点击子节点,会向上触发父节点,祖先节点的点击事件。