【JS基礎】阻止預設操作
把單擊事件處理程式註冊到一個錨元素,而不是一個外層的上,那麼就要面對另外一個問題:當使用者單擊連結時,瀏覽器會載入一個新頁面。
當使用者在編輯完表單後按下Enter鍵時,會觸發表單的submit事件,在此事件發生後,表單提交才會真正發生。這種行為與我們討論的事件處理程式不是同一個概念,它是單擊標籤元素的預設操作。
在這種情況下,處理方法有:
1.w3c的方法是e.preventDefault(),IE則是使用e.returnValue = false
preventDefault它是事件物件(Event)的一個方法,作用是取消一個目標元素的預設行為。
既然是說預設行為,當然是元素必須有預設行為才能被取消,如果元素本身就沒有預設行為,呼叫當然就無效了。
什麼元素有預設行為呢?如連結
var a = document.getElementById("testA");
a.>
if(e.preventDefault){
e.preventDefault();
}else{
window.event.returnValue = false;//IE
//注意:這個地方是無法用return false代替的
//return false只能取消元素
}
}
2. return false
javascript的return false只會阻止預設行為,而是用jQuery的話則既阻止預設行為又防止物件冒泡。
//原生js,只會阻止預設行為,不會停止冒泡
var a = document.getElementById("testA");
a.>
return false;//當然 也阻止了事件本身
};
//既然return false 和 e.preventDefault()都是一樣的效果,那它們有區別嗎?當然有。
//僅僅是在HTML事件屬性 和 DOM0級事件處理方法中 才能透過返回 return false 的形式組織事件宿主的預設行為。1234567
//jQuery,既阻止預設行為又停止冒泡
$("#testA").on('click',function(){
return false;//當然 也阻止了事件本身
});
總結方法
當需要阻止預設行為時,可以使用:
function stopDefault( e ) {
if ( e && e.preventDefault ){
e.preventDefault(); //阻止預設瀏覽器動作(W3C)
}else {
window.event.returnValue = false; //IE中阻止函式器預設動作的方式
}
return false;
}
事件注意點
1、event代表事件的狀態,例如觸發event物件的元素、滑鼠的位置及狀態、按下的鍵等等;
2、event物件只在事件發生的過程中才有效。
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/69979119/viewspace-2709668/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- (JS基礎)操作表單JS
- 阻止捕獲和冒泡,阻止預設行為
- JavaScript 阻止預設動作JavaScript
- JavaScript阻止預設動作JavaScript
- 阻止游標預設事件事件
- JS 基礎型別之裝箱操作JS型別
- js基礎JS
- js 基礎JS
- python基礎操作Python
- MongoDB基礎操作MongoDB
- elasticsearch 基礎操作Elasticsearch
- linux基礎操作Linux
- Redis基礎操作Redis
- 【web前端基礎 | JS基礎】物件Web前端JS物件
- 併發程式設計基礎與原子操作程式設計
- js基礎文件JS
- JS·基礎(一)JS
- JS基礎 ---事件JS事件
- JS基礎知識(覆蓋JS基礎面試題)JS面試題
- jQuery學習筆記02--讀取和操作屬性,讀取和操作屬性節點,新增、刪除、改變類,操作html、css、value,操作事件,事件冒泡及阻止事件冒泡,預設行為及阻止預設行為,自動觸發事件jQuery筆記HTMLCSS事件
- 【ES6基礎】預設引數值
- 常用基礎Linux操作命令總結與hadoop基礎操作命令LinuxHadoop
- FPGA基礎設計(7)雙口RAM乒乓操作FPGA
- kali操作命令基礎
- java基礎操作2Java
- 二、MySQL基礎操作MySql
- DRF基礎操作流程
- Mongodb-基礎操作MongoDB
- [Python基礎]字串操作Python字串
- 【Docker】Docker基礎操作Docker
- JS基礎面試JS面試
- js基礎複習JS
- Nuxt.js基礎UXJS
- JS01_基礎JS
- js基礎知識JS
- html css 基礎 jsHTMLCSSJS
- 原生js如何阻止事件冒泡JS事件
- Web:移動端阻止預設行為的小坑Web