猿问

jquery调用子元素方法,父元素方法执行了两次?

<!doctype html>
<html>
<head>
<meta charset="utf-8">
<title>无标题文档</title>
<script type="text/javascript" src="jquery-1.4.2.min.js"></script>
</head>

<body>
<a href="#" onClick="functionOne();">父亲元素&nbsp;&nbsp;&nbsp;&nbsp;&nbsp;
<span onClick="functionTwo();">子元素</span>
</a>
</body>
<script type="text/javascript">
function functionOne(){
//doSoming
alert("1111");
}

function functionTwo(){
//doSoming
alert("2222");
}

$(function(){
$("a").find("span").click();
});
</script>
</html>

这里functionOne执行了两次,请问是怎么回事?另外怎么能解决这个问题,一次也不执行。前提是a标签还是span标签的父节点哈

慕后森
浏览 601回答 5
5回答

慕娘9325324

return false应该是没用的, 我昨天正好也遇到了这个问题, 你在子元素里加上 event.stopPropagation()  这个方法将停止事件的传播,阻止它被分派到其他 Document 节点。在事件传播的任何阶段都可以调用它。注意,虽然该方法不能阻止同一个 Document 节点上的其他事件句柄被调用,但是它可以阻止把事件分派到其他节点。 纯手打, 楼主如果有问题继续追问, 没问题就采纳吧!    

墨色风雨

换衣是你的事件冒泡导致的。建议在事件处理代码最后return false

小怪兽爱吃肉

@幻天芒: 我这个维护项目的时候看见的一个小问题,他是遍历的菜单,onclick事件这些都已经固定啦,不能修改了,谢谢哈
随时随地看视频慕课网APP

相关分类

JavaScript
我要回答