3

我正在学习jQuery,并希望澄清e.preventDefault()它的作用。根据我的阅读,它可以防止事件的默认行为。

在我的例子中,我有一个锚标记,而不是带我到一个新页面,我希望它在我的屏幕上显示一个模式。所以我的jQuery看起来像这样

$(document).ready(function() {
$('#boxShow').click(function(e) {
    e.preventDefault();
    $("#light").fadeIn();
    $('#fade').fadeIn();
});

是否preventDefault()使我能够执行不同的事件?

抱歉,如果这是一个愚蠢的问题

4

5 回答 5

3

这很简单,它可以防止默认事件发生。例如,一个<a>元素通常会在点击时打开一个链接。为了覆盖它,您将需要使用此功能。

event一旦使用而不是首字母缩略词,这将更容易阅读e

$('a').click(function(event){
    event.preventDefault();
});
于 2012-10-09T11:11:54.147 回答
2

使用锚元素,“默认事件”是读取href超文本引用)值,并为此位置形成一个 HTTP 请求。简而言之,它将用户引导至href价值的 URL。

因此preventDefault()将阻止该href属性调用 HTTP 请求,并在下面运行您的代码。即2fadeIn()种方法。

于 2012-10-09T11:11:27.753 回答
1

根据文档e.preventDefault();防止触发事件的默认操作。

例如,在锚点/超链接的情况下,它应该防止链接重定向到指定的位置。

于 2012-10-09T11:12:23.643 回答
1

jquery网站:

如果调用该方法,则不会触发事件的默认动作。

因此,在锚标记的情况下,它不会将用户带到另一个网址,让您可以在点击事件中做您想做的事情。

ps这不是一个愚蠢的问题:-)

于 2012-10-09T11:13:28.197 回答
0

e.preventDefault();将阻止操作的默认行为,以防锚(a)它将阻止打开与锚关联的新网址。如果是表单,它将阻止提交表单。但是 e.preventDefault(); 不能在 IE 中工作,因为我不支持它。你应该使用e.returnValue = false;

代码:

if(e.preventDefault){
      e.preventDefault();

}
else{
    e.returnValue = false; 
}
于 2012-10-09T11:18:29.623 回答