$(window).load(function(e){
函数实际上是否可能和语义?
e.g。我有一个header.php,其中包含<script>
标记,其中包含一些jquery - $(window).load(function(e){
是其中的一部分。在它下面我有另一个标签链接到外部.js文件,该文件又有一个$(window).load(function(e){
。
这是允许的吗?
谢谢你!答案 0 :(得分:4)
是。您所做的每个load()
声明都只会附加到现有的处理程序中。
来自docs on .bind()
(这是处理load()
快捷方式实际工作的函数):
当事件到达元素时,将触发绑定到该元素的该事件类型的所有处理程序。如果注册了多个处理程序,它们将始终按照绑定的顺序执行。执行完所有处理程序后,事件将沿着正常的事件传播路径继续。
答案 1 :(得分:1)
.load()
函数(和其他与事件相关的函数)接受事件触发时放在事件处理程序队列中的函数。
所以,更直接地回答你的问题,是的。
答案 2 :(得分:0)
让我们谈谈它怎么可能?
假设您在页面完全加载时要调用多个事件。让我们在JavaScript
中对此进行检查,以获得有关概念的更多信息,并使其易于理解。
var pageLoadEvents = [];
我们创建了一个数组,我们将在加载页面时保留我们想要调用的所有事件。
pageLoadEvents.push( function() {
alert("hello!");
} )
和
pageLoadEvents.push( function() {
alert("How are you doing?");
} )
现在,您已经定义了要在页面加载时引发的所有事件,并且所有事件都在pageLoadEvents
数组中。在这里,我们写下最后一篇文章:
window.onload = function() {
for(var index=0; index<pageLoadEvents.length; index++) {
pageLoadEvents[index]();
}
}
我们保存在pageLoadEvents
数组中的所有事件都将逐个执行。
每次在load
上调用$(window)
时,它会将您在load
中定义的内容(例如函数(e){..})保留在数组中,并最终执行每个他们。