说我有:
<div id="name" class="button"></div>
在javacript文件中,我为类按钮和id名称定义了单击操作,如:
$("#name").click(function(event){
alert("hi");
})
$(".button").click(function(event){
alert("bye");
})
当我点击该div时,我会在“再见”警告之前收到“hi”警告,因为“hi”出现在“bye”上方吗?或者其他事情确定先发生了什么?如果2个函数在不同的文件中怎么办?那么首先包含哪个javascript文件(显得更接近html文件的顶部)是否重要?我假设jQuery与此无关,对吧?
答案 0 :(得分:3)
你是完全正确的,它是诚实地基于哪个首先受到约束。在您的情况下,首先绑定"#name"
,然后绑定".button"
,这就是为什么它们最终以相同的顺序执行。它不是基于首先在页面上看到的,而是首先绑定的。绑定可能发生在一个函数中,所以它不会发生,直到函数被调用(显然),但函数可能在其他绑定之前声明 - 并不意味着任何东西,它必须被调用。在不同的文件中也是如此。在解析文件时,它们会被执行。所以我之前所说的也适用于此 - 只要绑定按照解析事物的顺序执行(从HTML页面的顶部到底部),它们将按此顺序发生。我很确定发生这种情况的原因是因为jQuery将这些绑定存储在FIFO的堆栈中 - 先进先出。
答案 1 :(得分:0)
您首先看到'hi'
警报,因为该事件首先被绑定。
因此,当事件根据它们绑定的顺序触发时..