1、阻止默认行为
阻止<a>超链接的跳转href
<a onclick="testEvent(event)" href="baidu.com"></a> function testEvent(event){ event.preventDefault(); // 该方法阻止元素发生默认的行为 window.zhad.push({eventtype: 'js_buy'}); setTimeout(function(){ window.location.href=event.target.href; }, 200); } //或者 $("a").click(function(e){ e.preventDefault(); });
阻止表单的提交
$("form:eq(0)").submit(function(e){ e.preventDefault(); });
阻止鼠标右键(contextmenu表示鼠标右键事件):
$( document ).contextmenu(function(e) { e.preventDefault(); }); //contextmenu表示鼠标右键事件,用法与一般事件相同 //等同于 $(document).bind("contextmenu",function(){ alert("鼠标右键") });
2、阻止冒泡并阻止默认行为
$("a").click(function(e){ e.preventDefault(); e.stopPropagation();//取消事件冒泡 }); //等效于 $("a").click(function(e){ return false; });
取消冒泡并阻止后续事件 stopImmediatePropatation()
$(":submit").click(function(e){ e.stopImmediatePropagation(); //e.stopPropagation(); alert("1"); }); $(":submit").click(function(){ alert("2"); }); //例子说明:如果使用stopPropagation()那么会取消冒泡,但是仍然后弹出两次。 //如果使用stopImmediatePropatation()那么不但会取消冒泡,还会取消后续绑定的事件。
3、取消默认回车事件
有时候回车按键的默认事件不是我们想要的,可以通过阻止事件的默认行为来达到我们想要的效果。
$(document).on('keydown', 'li', function(e) { if(e.keyCode == 13) { e.preventDefault() } }) //等效于 $("li").keydown(function(e) { if(e.keyCode == 13) { e.preventDefault() } })