我们都知道JavaScriptevent.preventDefault()可以用来阻止web元素的原始事件,比如说a标签如果有href属性,通常情况下,点击链接就会跳转,但是增加event.preventDefault()可以阻止连接的跳转。但是我们往往会忽略return false。
event.preventDefault()的背后
这是一个a标签,为了不让你根据href跳转,就加了“event.preventDefault();”
<a href="${ctx}/mem/logout" id="aaa" style="padding: 0 6px;">退出</a> <script> $(function() { $("#aaa").click(function(event){ event.preventDefault(); }) }) </script> public void logout() { logger.info("进行会员登出操作...");
通常情况下,我们不需要退出标签还可以向服务端发送请求信息。但是上面这串代码在执行的过程中,logger会输出”进行会员登出操作…”的信息,这说明什么呢,event.preventDefault()只是表象操作阻止,但背后的请求依然会执行。
return false $(function() { $("#aaa").click(function(event){ return false; }) })
假如我们把event.preventDefault()代码替换为return false,此时登出标签既不会发生页面之间的跳转,也不会向服务端发送请求。