jQuery click函数何时需要';事件';?
我在jquery中有一个click函数,直到我添加了“event”(见下文)之后才起作用 什么时候需要活动?本文档不使用它: 没有工作:jQuery click函数何时需要';事件';?,jquery,Jquery,我在jquery中有一个click函数,直到我添加了“event”(见下文)之后才起作用 什么时候需要活动?本文档不使用它: 没有工作: $(document).ready(function () { $('#div a').click(function () { event.preventDefault(); $('#menu,#wrapper').toggleClass('open'); }); })
$(document).ready(function () {
$('#div a').click(function () {
event.preventDefault();
$('#menu,#wrapper').toggleClass('open');
});
})
作品:
$(document).ready(function () {
$('#div a').click(function (event) {
event.preventDefault();
$('#menu,#wrapper').toggleClass('open');
});
})
您链接到的文档表明,
单击
功能是事件类型为的“单击”
的快捷方式。以下是本文档的摘录:
.bind(eventType[,eventData],处理程序(eventObject))
bind函数的原型显示,handler
,您提供的回调,接收一个eventObject
,这是您代码中的事件
此事件是jQuery包装的事件,具有您调用的函数,preventDefault
所以这条线
event.preventDefault();
需要定义事件。在函数声明中写入function(event)
将声明局部变量event,其值将是jQuery给出的eventObject
之一
或者,如果您不喜欢定义变量,可以这样做:
$(document).ready(function () {
$('#div a').click(function () {
$('#menu,#wrapper').toggleClass('open');
return false; // this prevents default handling and also stops propagation
});
})
您链接到的文档表明,
单击
功能是事件类型为的“单击”
的快捷方式。以下是本文档的摘录:
.bind(eventType[,eventData],处理程序(eventObject))
bind函数的原型显示,handler
,您提供的回调,接收一个eventObject
,这是您代码中的事件
此事件是jQuery包装的事件,具有您调用的函数,preventDefault
所以这条线
event.preventDefault();
需要定义事件。在函数声明中写入function(event)
将声明局部变量event,其值将是jQuery给出的eventObject
之一
或者,如果您不喜欢定义变量,可以这样做:
$(document).ready(function () {
$('#div a').click(function () {
$('#menu,#wrapper').toggleClass('open');
return false; // this prevents default handling and also stops propagation
});
})
正如您所注意到的,jquery文档解释了该方法及其签名,但没有给出使用eventObject的示例
.click( handler(eventObject) )
handler(eventObject) A function to execute each time the event is triggered.
您正在提供一个匿名函数来代替处理程序(eventObject):
但是函数签名包括您可以使用的eventObject
function(event) {
// do something with event, such as event.preventDefault();
}
请注意,如果有助于理解以下内容,还可以调用命名函数:
$(document).ready(function () {
$('#div a').click(handleSomeClick);
})
function handleSomeClick(event) {
event.preventDefault();
$('#menu,#wrapper').toggleClass('open');
}
您可以使用console.log(event)来查看还可以对该对象执行哪些操作。如您所述,jquery文档解释了该方法及其签名,但没有给出使用eventObject的示例
.click( handler(eventObject) )
handler(eventObject) A function to execute each time the event is triggered.
您正在提供一个匿名函数来代替处理程序(eventObject):
但是函数签名包括您可以使用的eventObject
function(event) {
// do something with event, such as event.preventDefault();
}
请注意,如果有助于理解以下内容,还可以调用命名函数:
$(document).ready(function () {
$('#div a').click(handleSomeClick);
})
function handleSomeClick(event) {
event.preventDefault();
$('#menu,#wrapper').toggleClass('open');
}
您可以使用console.log(event)来查看您还可以对该对象执行哪些操作。当触发
单击事件时,您的侦听器函数将被传递一个事件对象。在第一个示例中,您的函数不接受任何参数,并且不以其他方式定义事件
,因此事件中的事件
但让我们稍微回顾一下:
在JavaScript中,当触发事件侦听器函数时,会将一个作为第一个参数传递给它们。此事件对象包含有关刚刚发生的事件的详细信息,例如,keydown
事件按了哪个键,或者单击事件使用了哪个鼠标按钮(左、右、中)
event对象还具有一些用于控制事件的特殊功能,包括停止默认浏览器行为的event.preventDefault
。例如,当您绑定时,单击jQuery文档中的链接
tl;dr:您希望您的函数能够使用event.preventDefault
。为此,您必须让事件侦听器函数从事件中接受事件对象,然后调用其.preventDefault
方法。当单击事件激发时,您的侦听器函数将被传递一个事件对象。在第一个示例中,您的函数不接受任何参数,并且不以其他方式定义事件
,因此事件中的事件
但让我们稍微回顾一下:
在JavaScript中,当触发事件侦听器函数时,会将一个作为第一个参数传递给它们。此事件对象包含有关刚刚发生的事件的详细信息,例如,keydown
事件按了哪个键,或者单击事件使用了哪个鼠标按钮(左、右、中)
event对象还具有一些用于控制事件的特殊功能,包括停止默认浏览器行为的event.preventDefault
。例如,当您绑定时,单击jQuery文档中的链接
tl;dr:您希望您的函数能够使用event.preventDefault
。为此,必须让事件侦听器函数从事件中接受事件对象,然后调用其.preventDefault
方法。在不起作用的代码段中,事件
未定义,因为您没有声明它或将它作为函数的参数接受
$(element).click(function(event){ // "event" is optional, but required if you intend to use it
event.preventDefault();
});
如果要使用事件对象(例如,使用它来阻止代码中的默认操作或从中获取信息,例如事件源自哪个元素),则仅“需要”传递事件对象参数
还要注意的是,您可以使用任何您想要的名称来代替事件,它仍然可以工作
$(element).click(function(foobar){
foobar.preventDefault();
alert("The id of the clicked element is: " + foobar.target.id);
});
如果您不确定,只需包含它,它不会损害任何东西。在不起作用的代码片段中,事件是u