2011-02-16 57 views
0

我的问题似乎在昨天被删除之前就已经被删除了,所以我正在开始一个关于该主题的新主题。关于javascript事件处理程序语法的问题

我一直试图找到跨浏览器的JavaScript调整,以及跨越这句法中一个答案张贴在这里跑:

$(window).resize(function() 

我怕我听不懂的语法$(window).。这是特定于jQuery的东西吗?

回答

0

是的,这是特定于jQuery。这是跨浏览器和免费下载。我建议使用jQuery,因为它为您处理所有跨浏览器困难。 $(window)jQuery(window)的简写,它选择浏览器窗口以及与之相关的任何选项,事件和其他任何内容。

+0

那么它不是真的特定于jQuery - Prototype.js库也使用全局“$”标识符。 – Pointy 2011-02-16 15:50:22

0

JavaScript中的“$”字符可以在变量名和函数名中自由使用。因此,jQuery使用标识符“$”作为“jQuery”函数的别名。

你可以自己做:

var my$variable = "hello world"; 
alert(my$variable); 

或者

function my$function() { ... } 
1

您将您的问题添加为旧问题的答案。这是做到这一点的正确方法!

$(window)是用于创建包含window对象的jQuery对象的jQuery语法。某些事件触发此,例如resizeload

这句法增加了resize处理器的window

1

让我们打破$(window).resize(function() { });

  • $(为jQuery的别名)是一个简单的JavaScript函数的名称。在这种情况下,它是jQuery object constructor function

  • (window) - 因为我们正在调用一个函数,所以参数被括在圆括号中。 jQuery函数需要一些参数(选择器字符串,DOM元素[s],其他jQuery对象和HTML字符串)。在这里,我们传递D​​OM window对象,因为我们知道它会触发我们要绑定到的onresize事件。

  • . - 的jQuery()函数返回一个jQuery物体—具有many方法和属性—和我们使用期间访问的那些方法。

  • resize()method of the jQuery object。根据您传递给它的参数,它会触发resize事件(当您传递任何参数时)或将新事件处理程序绑定到事件(当您传递函数引用时,就像我们在这里一样)。每次事件被代码或浏览器触发时,都会调用绑定的事件处理程序。

  • function() { }anonymous function的语法。每次调用函数时,您在{ }内写入的代码都会执行。在这种情况下,当resize事件被触发时,该函数被调用。