想象一下这样的事情。
<!doctype html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Testing event bubbling</title>
<script src="js/jquery/jquery-2.0.0.js"></script>
<script>
$(document).on('click', 'div', function(e) {
e.preventDefault();
console.log('Clicked');
return true;
});
$(document).on('submit', 'form', function(e) {
e.preventDefault();
console.log('Submitted');
});
</script>
</head>
<body>
<form>
<div><div><div>
Click this.
<input type="submit">
</div></div></div>
</form>
</body>
</html>
现在,当您单击提交按钮时,单击事件被捕获并向下传播到所有 DIV,您会看到“单击”三次。我的特殊之处在于,这似乎跳过了表单提交事件。如果我删除 Click 绑定,则提交事件会正确触发。有没有在表单上手动触发 submit() 的方法?我知道我可以使点击事件更具体,因此它不适用于提交按钮,但是......我有一个奇怪的用例。
我在这里做错了什么?如果触发了一个事件,是否意味着所有其他优先级较低的事件都将被忽略?