Javascript 通过';事件';作为参数输入函数

Javascript 通过';事件';作为参数输入函数,javascript,jquery,Javascript,Jquery,我对JS和jQuery都是新手,对于什么情况需要将event作为参数传递到函数中,以及什么情况需要而不是我有点困惑 例如: $(document).ready(function() { $('#foo').click(function() { // Do something }); }); 对 $(document).ready(function() { $('#foo').click(function

我对JS和jQuery都是新手,对于什么情况需要将
event
作为参数传递到函数中,以及什么情况需要而不是我有点困惑

例如:

      $(document).ready(function() {

        $('#foo').click(function() {
         // Do something
});

      });

      $(document).ready(function() {

        $('#foo').click(function(event) {
         // Do something
});

      });

如果要在处理程序体中使用事件,则只需要该事件。

如果要在处理程序体中使用事件,则只需要该事件。

变量有一些用途。如果您真的要使用它,您只需要将它指定为处理程序的参数——JavaScript毫无怨言地处理可变数量的参数

您将看到的最常见的用法是防止触发事件的操作的默认行为。因此:

$('a.fake').click(function(e) {
    e.preventDefault();
    alert("This is a fake link!");
});
…当单击时,将阻止类
false
的任何链接实际转到它们的
href
。同样,您可以使用它取消表单提交,例如在验证方法中。这类似于
返回false
,但更可靠

jQuery的
事件
对象实际上是除IE之外的所有内容中提供的标准
事件
参数的跨浏览器版本。它本质上是一种快捷方式,允许您只使用一个代码路径,而不必检查每个事件处理程序中使用的浏览器

(如果您阅读非jQuery代码,您将看到以下许多内容,这些内容都是为了解决IE的缺陷而做的

function(e) {
    e = e || window.event; // For IE
这是一种痛苦,而图书馆让它变得更容易处理。)


基本上,如果你在那里看到任何你需要的东西,就把它包括进去,否则就不用担心了。我喜欢总是包含它,这样我就永远不必记得以后如果我决定需要它的话再添加它。

事件参数有一些用途。如果您真的要使用它,您只需要将它指定为处理程序的参数——JavaScript毫无怨言地处理可变数量的参数

您将看到的最常见的用法是防止触发事件的操作的默认行为。因此:

$('a.fake').click(function(e) {
    e.preventDefault();
    alert("This is a fake link!");
});
…当单击时,将阻止类
false
的任何链接实际转到它们的
href
。同样,您可以使用它取消表单提交,例如在验证方法中。这类似于
返回false
,但更可靠

jQuery的
事件
对象实际上是除IE之外的所有内容中提供的标准
事件
参数的跨浏览器版本。它本质上是一种快捷方式,允许您只使用一个代码路径,而不必检查每个事件处理程序中使用的浏览器

(如果您阅读非jQuery代码,您将看到以下许多内容,这些内容都是为了解决IE的缺陷而做的

function(e) {
    e = e || window.event; // For IE
这是一种痛苦,而图书馆让它变得更容易处理。)


基本上,如果你在那里看到任何你需要的东西,就把它包括进去,否则就不用担心了。我喜欢总是包含它,这样我就永远不必记得在以后我决定需要它时再添加它。

因为您使用的是jQuery,所以只有在需要在处理程序中使用事件时才将
事件
作为参数,例如如果您需要在
按键
事件上按下的键

在JS中,如果没有jQuery或Prototype等,您需要将
事件
作为符合标准的浏览器(如Firefox)的参数传递,但该事件在IE中不会作为参数传递。IE实际上维护了一个全局变量
window.event
。因此,在处理程序(sans库)中,需要检查参数是否
未定义
;如果是这样,则获取全局变量

function eventHandler(evt) {
  var theEvent = evt || window.event;
  //use the event
}
但是像jQuery这样的库会为您处理这些问题


老实说,我不建议在你学会这门语言之前使用图书馆。但是,如果这是为了一项工作,用户一定要使用该库,但要自己学习JS的详细信息,这样您才能更好地欣赏它。

由于您使用的是jQuery,因此只有在需要在处理程序中使用事件时才将
事件作为参数,例如如果您需要在
按键
事件上按下的键

在JS中,如果没有jQuery或Prototype等,您需要将
事件
作为符合标准的浏览器(如Firefox)的参数传递,但该事件在IE中不会作为参数传递。IE实际上维护了一个全局变量
window.event
。因此,在处理程序(sans库)中,需要检查参数是否
未定义
;如果是这样,则获取全局变量

function eventHandler(evt) {
  var theEvent = evt || window.event;
  //use the event
}
但是像jQuery这样的库会为您处理这些问题


老实说,我不建议在你学会这门语言之前使用图书馆。但是,如果这是为了一项工作,那么用户一定要使用该库,但要自己学习JS的详细信息,这样您才能更好地欣赏它。

我在处理程序中“使用”事件的方法有哪些?如果您想在处理程序中做一些需要了解更多事件信息的事情,例如鼠标的位置。如果在处理程序中放置断点并查看事件对象中的可用内容,您可能会有一些想法。我将在处理程序中“使用”事件的方法示例是什么?如果您希望在处理程序中执行需要了解有关事件的更多信息(例如鼠标位置)的操作。如果在处理程序中设置断点并查看事件对象中的可用内容,您可能会有一些想法。首先学习一个库,它可以让你避免语言的小怪癖(在JS的例子中,是跨浏览器的问题)。随着时间的推移,一旦你熟悉了你正在使用的语言的子集,尝试一下图书馆免费的工作。我想是个人偏好吧。但我认为我在处理语言的怪癖方面做得很快。事实上,我更喜欢相反的方式。先学习一个图书馆,这样你就可以避免