e.preventDefault()的行为;

时间:2012-10-09 11:09:17

标签: jquery

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

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

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

preventDefault()能让我执行不同的活动吗?

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

5 个答案:

答案 0 :(得分:3)

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

使用event代替首字母缩写e后,这会更容易阅读。

$('a').click(function(event){
    event.preventDefault();
});

答案 1 :(得分:2)

对于锚元素,“默认事件”是读取href超文本引用)值,并为此位置形成HTTP请求。简而言之,它会将用户定向到href值的网址。

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

答案 2 :(得分:1)

根据documentatione.preventDefault();会阻止触发事件的默认操作。

如果是锚点/超链接,它应该阻止链接重定向到指定位置。

答案 3 :(得分:1)

来自jquery网站:

  

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

因此,对于锚标记,它不会将用户带到另一个网址,让您打开以在点击事件中执行您想要的操作。

p.s这不是一个愚蠢的问题: - )

答案 4 :(得分:0)

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

代码:

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

}
else{
    e.returnValue = false; 
}