我试图了解如果同一事件绑定到两个单独的元素,JavaScript将如何决定首先运行哪个事件。例如,在我的JS中我有:
$(document).click(function(e){
//some code
})
$('#someButton').click(function(e){
//some code
})
当我测试这个时,无论我如何安排代码(文档之前或之后的#someButton代码),#someButton click事件总是先被触发。 JS如何决定先执行什么?
答案 0 :(得分:1)
规格。
id比文档更具体。
以下是一个类按钮的示例,该按钮也比文档更具体。
$(document).click(function(e){
alert("Document");
})
$('#someButtonId').click(function(e){
alert("Id");
})
$('#someButtonClass').click(function(e){
alert("Class");
})
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<!DOCTYPE html>
<html lang="en">
<head>
<meta charset="UTF-8">
<title>Demo</title>
<link rel="stylesheet" type="text/css" href="Demo.css">
<script src="https://code.jquery.com/jquery-3.3.1.min.js" integrity="sha256-FgpCb/KJQlLNfOu91ta32o/NMZxltwRo8QtmkMRdAu8=" crossorigin="anonymous"></script>
</head>
<body>
<button id="someButtonId">Button Id</button>
<button id="someButtonClass">Button Class</button>
<script type="text/javascript" src="Demo.js"></script>
</body>
</html>