JS:两个点击事件,JS如何决定首先触发哪个事件

时间:2018-03-30 21:38:41

标签: javascript jquery

我试图了解如果同一事件绑定到两个单独的元素,JavaScript将如何决定首先运行哪个事件。例如,在我的JS中我有:

$(document).click(function(e){
  //some code
})

$('#someButton').click(function(e){
  //some code
})

当我测试这个时,无论我如何安排代码(文档之前或之后的#someButton代码),#someButton click事件总是先被触发。 JS如何决定先执行什么?

1 个答案:

答案 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>