当我想阻止其他事件处理程序在触发某个事件后执行时,我可以使用以下两种技术之一。我将在示例中使用jQuery,但这也适用于普通JS:
1.event.prpreventDefault()
$('a').click(function (e) {
// custom handling here
e.preventDefault();
});
2.返回false
$('a').click(function () {
// custom handling here
return false;
});
这两种停止事件传播的方法之间有什么显著的区别吗?
对我来说,返回false;与执行方法相比,它更简单、更短,并且可能更不容易出错。使用该方法,您必须记住正确的大小写、括号等。
此外,我必须在回调中定义第一个参数才能调用该方法。也许,我应该避免这样做,而是使用preventDefault,这是有原因的吗?更好的方法是什么?
e.预防违约();
它只是停止元素的默认操作。
实例示例:-
阻止超链接跟随URL,阻止提交按钮提交表单。当您有多个事件处理程序,而您只想阻止默认事件发生,多次发生时,为此,我们需要在函数()的顶部使用。
原因:-
使用e.preventDefault()的原因;在我们的代码中,如果代码中出现错误,那么它将允许执行链接或表单以提交,或者允许执行或允许执行您需要执行的任何操作。链接或提交按钮将被提交,并且仍然允许事件的进一步传播。
<!DOCTYPE html><html lang=“en”dir=“ltr”><head><meta charset=“utf-8”><title></title></head><body><script src=“https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js“></script><a href=“https://www.google.com“onclick=”doSomethingElse()“>防止页面重定向</a><script type=“text/javascript”>函数doSomethingElse(){console.log(“这是测试…”);}$(“a”).点击(函数(e){e.预防违约();});</script></body></html>
return False;
它只是停止函数()的执行。
“return false;”将结束整个过程的执行。
原因:-
使用return false的原因;就是您不想在严格模式下执行该函数。
<!DOCTYPE html><html lang=“en”dir=“ltr”><head><meta charset=“utf-8”><title></title></head><body><a href=“#”onclick=“returnFalse();”>Blah</a><script type=“text/javascript”>函数returnFalse(){console.log(“在没有位置重定向的情况下返回false….”)return false;location.href=“http://www.google.com/";}</script></body></html>