jQuery中$(window).load()事件的问题

时间:2013-07-04 09:17:10

标签: jquery

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.10.1/jquery.min.js">
</script>
<script type="text/javascript"> 
$(window).load( function(){ console.log('Loading finished.'); } ); 
console.log($(window).load);
</script>  

在chrome-&gt;控制台中,它显示:

function (e,n,r){if("string"!=typeof e&&Sn)...
Loading finished.

问题:

  1. 在上面的脚本中,这一行:$(window) ...位于顶部,为什么它的输出不在开头?

  2. 其实我想检查事件加载中的处理程序,它应该是function(){ console.log('Loading finished.'); }所以:

  3. 一个。如何输出事件处理程序?

    湾输出(function (e,n,r)...)是什么意思?

3 个答案:

答案 0 :(得分:2)

您可以使用$ ._ data events数组:{在较旧的jquery版本中为$ .data}

DEMO

var dataLoad = $._data(window, 'events').load;
for (var i = 0, z = dataLoad.length; i < z; i++)
console.log($._data(window, 'events').load[i].handler);

答案 1 :(得分:1)

  
    

在上面的脚本中,这一行:$(window)...在顶部,为什么它的输出不在开头?

  

这是因为你刚刚将事件监听器绑定到窗口变量。 load函数不是即时调用的,但是在浏览器完成加载完整的HTML时会调用它。你的第二个陈述不是一个事件,因此它会立即执行,因此你会看到输出。

  
    

输出(函数(e,n,r)......)是什么意思?

  

当您将一个函数对象打印到控制台时,JS将对整个函数及其正文进行格式化。

  
    

一个。如何输出事件处理程序?

  

我真的没有得到你想要的东西。

答案 2 :(得分:0)

 $(window).load( function(){ console.log('Loading finished.'); } ); 

上面的语句将您的函数绑定到Window Load事件,因此当Window加载时,您的函数将运行。

console.log($(window).load);

上面的语句打印输出到控制台,什么是$(window).load,像这样

$(window)

是表示Window的对象,

.load

是window对象的事件/函数,因此输出为(function(e,n,r)...)。在简单语言中,load是带有3个参数的函数

希望你理解