Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/70.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/loops/2.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
jQuery click函数何时需要';事件';?_Jquery - Fatal编程技术网

jQuery click函数何时需要';事件';?

jQuery click函数何时需要';事件';?,jquery,Jquery,我在jquery中有一个click函数,直到我添加了“event”(见下文)之后才起作用 什么时候需要活动?本文档不使用它: 没有工作: $(document).ready(function () { $('#div a').click(function () { event.preventDefault(); $('#menu,#wrapper').toggleClass('open'); }); })

我在jquery中有一个click函数,直到我添加了“event”(见下文)之后才起作用

什么时候需要活动?本文档不使用它:

没有工作:

$(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