默認事件
就是瀏覽器通過HTML標簽或DOM元素提供的一些功能性的默認行為。比如在a標簽href屬性上的跳轉,右鍵呼出的菜單等等。我們可以通過js取消或更改這些默認事件。
取消默認事件
默認事件都是定義在DOM元素相應的事件類型上的,我們只需要知道產生默認事件的是哪個元素,這個事件是什么類型的,就可以阻止或修改它。實現方式就是注冊相應的事件處理函數,在其中通過如下API阻止默認事件的發生。
event.preventDefault() : 阻止默認行為
(IE9以下)event.returnValue=false:返回值=false 阻止默認行為
a標簽的跳轉
存在形式:在a標簽的點擊事件中。
// 獲取一個a標簽 禁止他的跳轉行為 document.getElementsByTagName("a")[0].onclick = function(e){ var event = e||window.event; if(e.preventDefault){ e.preventDefault(); }else{ event.returnValue = false; } }
右鍵呼出菜單事件
存在形式:document的contextmenu事件中。
// 取消之后右鍵就沒有菜單了
document.oncontextmenu = function(e){ var event = e||window.event; if(e.preventDefault){ e.preventDefault(); }else{ event.returnValue = false; } }
不得不提的表單
存在形式:from表單會賦予它包含的button標簽或type為submit的input,提交(submit)事件。
submit事件:根據from元素的method屬性值決定提數據的方式,通常是get/post,提交表單元素的值。
// 一個默認使用get方法提交數據的表單 <form class="user-info"> <input type="text" name="user-id" id=""> <input type="text" name="user-pwd" id=""> <input type="submit" name="btn" value="提交" id=""> </form> // 組着user-info表單中的提交事件 document.getElementsByClassName("user-info")[0].onsubmit = function(e){ var event = e || window.event; if(event.preventDefault){ event.preventDefault(); }else{ event.returnValue = false; } }
未完待續...
