1
<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>  

In chrome->console, it shows:

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

Question:

  1. In above scripts, this line:$(window)... is at the top, why its output is not at the beginning?

  2. Actually I want to check the handler in the event load, it should be function(){ console.log('Loading finished.'); } so:

a. how to output the event handler?

b. what does the output(function (e,n,r)...) mean?

4

3 回答 3

2

您可以像这样使用 $._data 事件数组:{在较旧的 jquery 版本中,它是 $.data}

演示

var dataLoad = $._data(window, 'events').load;
for (var i = 0, z = dataLoad.length; i < z; i++)
console.log($._data(window, 'events').load[i].handler);
于 2013-07-04T09:28:13.077 回答
1

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

那是因为您刚刚将事件侦听器绑定到 window 变量。该load函数不会立即调用,而是在浏览器完成加载完整 HTML 时调用。您的第二条语句不是事件,因此它会立即执行,因此您会看到输出。

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

当你将一个函数对象打印到控制台时,JS 会触发整个函数及其主体。

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

我真的没有在这里得到你想要的。

于 2013-07-04T09:25:16.857 回答
0
 $(window).load( function(){ console.log('Loading finished.'); } ); 

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

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

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

$(window)

是代表 Window 的对象,并且

.load

是窗口对象的事件/函数,所以输出是(函数(e,n,r)...)。用简单的语言,load 是一个接受 3 个参数的函数

希望你能理解

于 2013-07-04T09:29:31.240 回答