JS中event事件
JS事件基礎
1.event物件
(1)用來獲取事件的詳細資訊:滑鼠位置、鍵盤位置
document的本質:document.childNodes[0].tagName
例子:獲取滑鼠位置:clientX橫座標,clientY縱座標
程式碼如下:
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
window.onload=function()
{
document.onclick=function()
{
alert(event.clientX+','+event.clientY);
}
}
</script>
</head>
<body>
</body>
</html>
以上程式碼會有相容問題
alert(event.clientX+','+event.clientY);大部分適合IE
把上面程式碼換成alert(ev.clientX+','+ev.clientY);適用於火狐,不支援IE
現在怎麼解決相容問題呢?程式碼如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
window.onload=function()
{
document.onclick=function(ev)
{
//alert(event.clientX+','+event.clientY);適用於IE
//alert(ev.clientX+','+ev.clientY);//適用於火狐
var oEvent=ev||event;//報錯ev不存在
alert(oEvent.clientX+','+oEvent.clientY);
}
};
</script>
</head>
<body>
</body>
</html>
以上總結出解決event物件的相容性方法就是
設定一個變數 var oEvent=en||event
2事件冒泡: 事件冒泡就是會把事件一直傳遞給父級,一直到document,小知識document是一個隱藏起來的最大父級
事件冒泡例子:程式碼如下
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<style>
div{
padding:50px;
}
</style>
</head>
<body onclick="alert('aa')">
這個例子就是說明子級的事件會傳遞給父級,這就是事件冒泡
<div style="background:black;" onclick="alert(this.style.background)">
<div style="background:green;" onclick="alert(this.style.background)">
<div style="background:red; "onclick="alert(this.style.background)"></div>
</div>
</div>
</body>
</html>
執行上面程式碼點選一下最裡面的紅色就懂了
3.鍵盤事件
KeyCode:獲取使用者按下鍵盤的哪個按鍵
用法程式碼:
<script>
document.onkeydown=function(ev)
{
var oEvent=ev||event;
alert(oEvent.keyCode);
}
</script>
執行以上程式碼隨便按下某個鍵就會報出數字,這個數字就對應這個按鍵
例子2:如何使用按鍵回車提交某個資訊
<!DOCTYPE html>
<html>
<head>
<meta charset="UTF-8">
<title></title>
<script>
window.onload=function()
{
var oBun1=document.getElementById('bu1');
var oBun3=document.getElementById('text1')
oBun1.onkeydown=function(ev)
{
var oEvent=ev||event;
if(event.keyCode==13)
{
oBun3.value=oBun3.value+oBun1.value;
oBun1.value=''
}
}
}
</script>
</head>
<body>
<input id="bu1" type="text" />
<textarea id="text1" rows="10" cols="40"></textarea>
</body>
</html>
還有如何使用ctry+回車提交
只需要把如上程式碼if部分改為
if(event.keyCode==13 || oEvent.ctrlkey)
keyCode其他屬性
ctrlKey、shiftKey、altKey
來自 “ ITPUB部落格 ” ,連結:http://blog.itpub.net/4328/viewspace-2815922/,如需轉載,請註明出處,否則將追究法律責任。
相關文章
- js中事件物件eventJS事件物件
- nodejs中的事件迴圈 - Event LoopNodeJS事件OOP
- JS事件迴圈Event LoopJS事件OOP
- JS 事件機制 Event LoopJS事件OOP
- JS 事件迴圈(Event Loop)JS事件OOP
- js 在瀏覽器中的event loop事件佇列JS瀏覽器OOP事件佇列
- Node.js Event Loop與瀏覽器 Event Loop(事件環)Node.jsOOP瀏覽器事件
- node中的事件環(Event Loop)事件OOP
- 理解瀏覽器和nodeJs中的事件迴圈(Event Loop)瀏覽器NodeJS事件OOP
- 淺談js的事件迴圈(Event Loop)JS事件OOP
- js事件之event.preventDefault()與event.stopPropagation()用法區別JS事件
- MySQL中的事件排程器EVENTMySql事件
- Laravel 中的 Event 和事件的概念Laravel事件
- 理解瀏覽器和node.js中的Event loop事件迴圈瀏覽器Node.jsOOP事件
- 淺談Node.js的事件環(event loop)Node.js事件OOP
- mysql 事件 eventMySql事件
- event事件(1)事件
- [譯]理解js中的event loopJSOOP
- 淺析 JS 中的 Event LoopJSOOP
- Node.js 中的 Event loopNode.jsOOP
- Laravel使用event事件Laravel事件
- Tkinter (44) 事件 Event事件
- Spring中的事件講解(Application Event)Spring事件APP
- 效能優化篇 - js事件迴圈機制(event loop)優化JS事件OOP
- Vue.js原始碼學習三 —— 事件 Event 學習Vue.js原始碼事件
- 不要在nodejs中阻塞event loopNodeJSOOP
- 【譯】Node.js中的Event LoopNode.jsOOP
- 理解JS中的Event Loop機制JSOOP
- MySQL入門--EVENT(事件)MySql事件
- 事件迴圈(event loop)事件OOP
- Visual Event :快速檢視 DOM 上繫結的 JS 事件JS事件
- Dynamics 365中的事件框架與事件執行管道(Event execution pipeline)事件框架
- 如何在 JavaScript 中實現 Event Bus(事件匯流排)JavaScript事件
- Javascript 事件迴圈event loopJavaScript事件OOP
- Spring Boot 之事件(Event)Spring Boot事件
- JavaScript事件迴圈(Event Loop)JavaScript事件OOP
- JavaScript基礎之事件eventJavaScript事件
- 瞭解下C# 事件(Event)C#事件