函数处理函数是如何在JQuery中工作的
how function handler function handler work in JQuery
我想了解这段代码是如何工作的
$("#imageGallery a").click(function(event){
event.preventDefault();
});
为什么函数处理程序(在这种情况下"事件")被执行?处理程序不应该是一些不执行的变量吗?请随意分享任何与此相关的关键词/文章
谢谢. .
您正在使用的.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()
是该对象的方法之一。您可以在jQuery文档中看到对象的其他属性列表。
event
不是事件处理程序,它是一个事件对象具有属性和方法,包括在您的示例中调用的preventDefault()
方法。
你的事件处理程序是一个匿名函数function(event){ event.preventDefault(); }
在本例中,event
(传递给函数的第一个参数)包含发生的事件的对象(在本例中是单击事件)。该事件对象创建诸如preventDefault()
之类的函数,这些函数告诉浏览器忽略来自该事件的任何未来操作,例如打开已单击的链接。
试着在它前面加一行:
$("#imageGallery a").click(function(event){
console.log(event);
event.preventDefault();
});
然后查看您的控制台(按下F12),并查看控制台选项卡,并查看它输出的内容。您可以看到event
对象包含的所有字段和其他所有内容。
为了更明确一点,event
不是一个处理程序,你的整个函数是:
function(event){
event.preventDefault();
}
当事件被触发时,jQuery将把浏览器事件对象传递给这个函数,然后你的代码将执行。
相关文章:
- PHP/AAJAX阻止jquery工作
- Chrome扩展和Chome浏览器中的Jquery工作方式不同
- 2次点击事件不会'我在jquery工作
- 使用 href=“#” JQuery 工作,但使用 href=“page.jsp” 不起作用
- 迭代 javascript 对象无法通过 jQuery 工作
- 让简单的Javascript / jQuery工作(Ariel Flesler的ScrollTo)
- 更新面板阻止 jquery 工作
- Jquery工作,但只是暂时的
- 一个jQuery工作,两个不工作
- 当我使用AngularJS部分时,如何让JQuery工作
- 为什么不;我的jquery工作(使用延迟、hasclass、addclass、removeclass、keyUp、key
- jQuery工作不正常
- 我有一个JQuery工作,但小越野车
- :has() jquery工作不正常
- JQuery工作得太快了
- 如果一个输入单选被选中,改变父元素'的颜色:不能'使它与jQuery工作
- Chrome扩展:访问DOM的弹出.html和让jQuery工作
- 如何使下拉jQuery工作
- 尝试使jquery工作
- RegEx不与我的jQuery工作