函数处理函数处理程序如何在JQuery中工作

时间:2015-06-08 10:15:36

标签: javascript jquery

我想了解这段代码是如何运作的

$("#imageGallery a").click(function(event){
  event.preventDefault();
});

为什么执行函数处理程序(在本例中为" event")?难道该处理程序应该是一些不执行的var吗? 随时分享关于此

的任何关键字/文章

Thankss ..

3 个答案:

答案 0 :(得分:0)

event不是事件处理程序,它是一个带有属性和方法的事件对象,包括正在调用的preventDefault()方法你的榜样。

您的事件处理程序是一个匿名函数function(event){ event.preventDefault(); }

答案 1 :(得分:0)

在这种情况下,event(传递给函数的第一个参数)包含发生事件的对象(在本例中为click事件)。该事件对象创建preventDefault()等函数,告诉浏览器忽略此事件的任何未来操作,例如打开被点击的链接。

尝试在它之前添加一行:

$("#imageGallery a").click(function(event){
  console.log(event);
  event.preventDefault();
});

然后查看您的控制台(按F12键),然后查看控制台选项卡,看看它输出的内容。您可以查看所有字段以及event对象包含的所有其他内容。

为了澄清一点,event不是处理程序,你的整个功能是:

function(event){
  event.preventDefault();
}

当事件被触发时,jQuery会将浏览器事件对象传递给此函数,然后您的代码将会执行。

答案 2 :(得分:0)

使用它时的.click()方法需要一个参数,它是一个回调函数。

$("#imageGallery a").click(myCallback);

function myCallback(e) {
    // the argument e which you can name anything you want is a
    // jQuery event object
}

该回调函数将传递一个参数,该参数是一个jQuery事件对象。我已经编写了上面的代码,使用单独定义的函数进行回调以用于说明目的。但是,该函数也可以内联定义为内联匿名函数,如下所示:

$("#imageGallery a").click(function(e) {
    // the argument e is a jQuery event object
});

jQuery事件对象具有属性和方法。 .preventDefault()是该对象的方法之一。您可以在对象here in the jQuery doc上看到其他属性的列表。