JQuery:event.preventDefault()

时间:2010-12-13 05:59:12

标签: jquery

我们在哪种情况下使用JQuery:event.preventDefault(); .... 它将在何处使用?

2 个答案:

答案 0 :(得分:7)

当您想要阻止默认行为时。例如,在处理表单提交事件时,如果您想使用ajax发布并且没有刷新页面,则可以使用event.preventDefault()

$('#myform').submit(function(ev) {
    ev.preventDefault();
    // ajax stuff...
});

从您的函数返回false通常会产生相同的效果。

答案 1 :(得分:3)

function() {
  return false;
}

// IS EQUAL TO

function(e) {
  e.preventDefault();
  e.stopPropagation();
}

另一个非常好的例子是href

<a href="http://www.sometest.com" class="justtest">
test</a>

以下代码将显示警告并将用户置于默认行为,即href和www.sometst.com

$('.justtest').submit(function(ev) {
    alert("a href click");
});

如果我使用event.preventDefault,它只会显示警告并停止其默认行为。它不会将用户带到www.sometest.com

$('.justtest').submit(function(ev) {
    alert("a href click");
    event.preventDefault();// this is better 
    // return faslse// return false will kill all the events so try to use preventDefault
});

仅从SO获得

从jQuery事件处理程序返回false相当于同时调用e.preventDefault and e.stopPropagation.

所以区别在于preventDefault只会阻止默认事件操作发生,即链接点击,表单提交等页面重定向,返回false也会停止事件流。

另见

http://css-tricks.com/return-false-and-prevent-default/