也许是一个愚蠢的问题,但......
在这个简单的代码中:
$(".Q").on("click", ".container", containerClick);
$(".Q").on("click", ".container .oneElement", oneElementInContainerClicked);
如果单击.container中的.oneElement,则首先调用oneElementInContainerClicked。
是否可以强制事件的顺序,以便首先调用containerClick,然后调用oneElementInContainerClicked
答案 0 :(得分:1)
尝试在e.target
内检查containerClick
;在.trigger("click")
$(this).parents(".container")
上呼叫oneElementInContainerClicked
function containerClick(e) {
if (e.target.className !== "oneElement")
console.log("container")
}
function oneElementInContainerClicked() {
console.log("oneElement");
$(this).parents(".container").trigger("click")
}
$(".Q").on("click", ".container", containerClick);
$(".Q").on("click", ".container .oneElement", oneElementInContainerClicked);
<script src="https://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js">
</script>
<div class="Q">
<div class="container">container
<div class="oneElement">oneElement</div>
</div>
</div>