2015-06-08 101 views
0

我想了解这段代码是如何工作的如何在jQuery函数处理函数处理工作

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

为什么函数处理程序(在这种情况下,“事件”)的执行?处理程序是不是应该被执行的var? 随意分享此

Thankss任何关键字/物品..

+0

阅读它是如何工作的,http://api.jquery.com/event.preventdefault/ – Adil

回答

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上看到其他属性的列表。

+0

感谢您的解释ifriend,我现在明白了。只是想知道,()中的计算机是如何识别JQuery事件对象或对象的? – meandsmile

+0

它是'.click()'的文档的一部分。回调的调用者确定回调的参数。在这种情况下,回调的调用者是'.click()'jQuery代码,因此您可以在jQuery doc中查找'.click()'来查看它发送回调函数的参数。 – jfriend00

+0

Ohh ok j,我明白了..谢谢 – meandsmile

0

event不是事件处理程序,它是一个事件对象与属性和方法,包括preventDefault()方法正被在你的例子中调用。

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

0

在这种情况下,event(传递给函数的第一个参数)包含所发生事件的对象(在这种情况下,单击事件)。该事件对象创建诸如preventDefault()之类的函数,它告诉浏览器忽略来自该事件的任何未来动作,例如打开被点击的链接。

先试的权利将它添加一行:

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

并看看你的控制台(按F12),并期待作为控制台选项卡,看看它的输出。您可以看到所有字段以及event对象包含的所有其他字段。

要澄清的东西多一点,event不是一个处理程序,您的整个功能是:

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

jQuery将然后通过浏览器事件对象这一功能,当事件被触发,你的代码将然后执行。