1

说我有:

<div id="name" class="button"></div>

在 javacript 文件中,我为类按钮和 id 名称定义了单击操作,例如:

$("#name").click(function(event){
  alert("hi");
})

$(".button").click(function(event){
  alert("bye");
})

当我单击该 div 时,我会在“再见”警报之前收到“嗨”警报,因为“嗨”出现在“再见”上方吗?或者其他什么决定了首先发生什么?如果这两个函数在不同的文件中怎么办?那么首先包含哪个javascript文件(出现在更靠近html文件的顶部)是否重要?我认为 jQuery 与此无关,对吧?

4

2 回答 2

3

你是绝对正确的,它诚实地基于首先绑定的。在您的情况下,"#name"首先绑定的是那个,然后是".button",所以这就是为什么它们最终以相同的顺序执行。它不是基于在页面上首先看到的,而是首先绑定的。绑定可能发生在函数中,因此在调用该函数之前不会发生(显然),但该函数可能在其他绑定之前声明 - 没有任何意义,它必须被调用。在不同的文件中也是如此。当文件被解析时,它们被执行。所以我之前所说的也适用于此 - 只要绑定按照解析内容的顺序执行(从 HTML 页面的顶部到底部),它们就会按照该顺序发生。我很确定发生这种情况的原因是因为 jQuery 将这些绑定存储在一个 FIFO 堆栈中——先进先出。

于 2012-10-18T18:11:10.573 回答
0

'hi'首先看到警报,因为该事件首先被绑定。

因此,当事件根据它们绑定的顺序触发时..

于 2012-10-18T18:12:11.167 回答