我们在哪种情况下使用JQuery:event.preventDefault(); .... 它将在何处使用?
答案 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也会停止事件流。
另见