嘿家伙, 快速提问:在一个网站上使用两个$(window).load(function(e){
函数实际上是否可行和有语义?jquery和javascript:两个加载函数?
例如我有一个header.php其中包含<script>
标记与一些jQuery - $(window).load(function(e){
是它的一部分。在它下面我有另一个标签链接到一个外部.js文件,它又有一个$(window).load(function(e){
。
这是允许和可以吗?
谢谢!
嘿家伙, 快速提问:在一个网站上使用两个$(window).load(function(e){
函数实际上是否可行和有语义?jquery和javascript:两个加载函数?
例如我有一个header.php其中包含<script>
标记与一些jQuery - $(window).load(function(e){
是它的一部分。在它下面我有另一个标签链接到一个外部.js文件,它又有一个$(window).load(function(e){
。
这是允许和可以吗?
谢谢!
是的。您所做的每个load()
声明将简单地附加到现有处理程序。
从docs on .bind()
(这是处理实际工作的load()
快捷方式功能):
当一个事件到达的元素,绑定到该事件类型的元件的所有处理程序被解雇。如果有多个处理程序注册,它们将始终按照它们绑定的顺序执行。在所有处理程序执行完毕后,事件将沿着正常事件传播路径继续。
函数(和其他与事件相关的函数)接受函数,该函数在事件触发时将其放置在事件处理程序队列中。
所以,要更直接地回答你的问题,是的。
让我们刚才谈到它怎么可能?
假设您有多个事件要在您的页面完全加载时调用。让我们来看看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)
保持它的内容时(如函数(E){..})你load
在数组定义和最终执行他们每个人。