因为未遵循该操作,所以我们可能需要知道用户何时提示该操作,并可以使用event.isDefaultPrevented()
来确定是否由此事件触发的事件处理程序调用了此方法。 这可用于触发函数调用。 对于jQuery中带有XHtmlRequest的动态URL来获取带有模块的页面(例如href =” index.php?page = contact而不是contact.php),也可能很有用。 您可能还需要查看MOD Rewrite选项,这些选项也可以提供此功能和SEO优点。 jQuery Stop事件函数 。 请注意,如果您使用的是$(document).bind(“ keydown keypress”,function(event),则e.preventDefault()无法正常工作.. event.preventDefault()。有时您需要一个超链接是一个超链接,但是您不希望它处理并打开链接,而只是调用一个javascript函数说,幸运的是jQuery中有一个函数可以停止超链接操作。
示例1 –防止和捕获超链接单击
< !DOCTYPE html>
default click action is prevented
示例2 –阻止表单提交按钮
$('#myform').submit(function(event) {
event.preventDefault();
var self = this;
window.setTimeout(function() {
self.submit();
}, 2000);
});
示例3 –将超链接目标延迟到动画效果之后
$("#ELEMENT_WHICH_AFFECT_THE_SLIDEUP")
.click(function(event){
event.preventDefault(); // prevents link to be redirected
var time = 1000; // time for slideup effect
var url = $(this).attr("href"); // pick url for redirecting via javascript
$("#ELEMENT_TO_SLIDE_UP").slideUp(time); // effect
window.setTimeout(function(){document.location.href=url;}, time); // timeout and waiting until effect is complete
return -1;
});
示例4 –禁用向下滚动按钮
$(document).keydown(function(event){
// Move Down
if(event.keyCode == '40'){
event.preventDefault();
var posY = $('#'+selectedTxtID).css('top');
posY = parseFloat(posY);
var newPosY = posY + 1;
$('#'+selectedTxtID).css('top', newPosY+'px');
}
})
此功能不仅可以用于超链接,还可以用于具有您希望防止的默认操作的任何东西。
From: https://www.sitepoint.com/stop-actions-jquery-preventdefault/