Javascript拖拽&拖放系列文章3之細說事件對象第1/4頁
更新時間:2008年09月25日 16:15:15 作者:
Javascript中的事件對象其實和.NET中繼承自EventArgs類的派生類類似,用來給事件處理程序傳遞狀態(tài)信息,從而進行相應的操作。這一篇文章將講述Javascript事件對象中和實現(xiàn)拖拽功能相關的幾個屬性,并在最后將IE事件模型和標準DOM事件模型的差異封裝到一個類中,從而適應所有的瀏覽器。
在閱讀本文前,可以先閱讀《Javascript拖拽&拖放系列文章2之offsetLeft、offsetTop、offsetWidth、offsetHeight屬性》這篇文章,以理清上下文關系。
好了,讓我們開始進入正題。
模型相同的屬性/方法
1 Button屬性
Integer類型,可讀可寫。對于特定的鼠標事件,表示按下的鼠標按鈕,它可以在拖拽的時候,判斷是否是鼠標左鍵引發(fā)mousedown事件。它的所有取值及其意義(參考自《Javascript高級程序設計》)好了,讓我們開始進入正題。
3.1 e/window.Event對象的屬性/方法
3.1.1 IE事件模型和DOM事件如下:
0-未按下按鈕
1-按下左鍵
2-按下右鍵
3-同時按下左右按鈕
4-按下中鍵
5-按下左鍵和中鍵
6-按下右鍵和中鍵
7同時按下左中右鍵
mouseup的button屬性返回的數(shù)值和mousedown事件中的完全一樣。
注:在兼容DOM事件模型的所有瀏覽器中,0表示按下左鍵,數(shù)值1并不存在,2表示按下右鍵,對于非鼠標事件,返回“undefined”。
2 clientX、clientY屬性
這兩個屬性的類型都是Integer,單位是像素,可讀可寫。分別表示相關事件發(fā)生時,鼠標在瀏覽器的客戶端區(qū)域(不包括工具欄、滾動條等)的x坐標和y坐標。用一張圖片來解釋就再好不過了,請看:

好了,讓我們開始進入正題。
模型相同的屬性/方法
1 Button屬性
Integer類型,可讀可寫。對于特定的鼠標事件,表示按下的鼠標按鈕,它可以在拖拽的時候,判斷是否是鼠標左鍵引發(fā)mousedown事件。它的所有取值及其意義(參考自《Javascript高級程序設計》)好了,讓我們開始進入正題。
3.1 e/window.Event對象的屬性/方法
3.1.1 IE事件模型和DOM事件如下:
0-未按下按鈕
1-按下左鍵
2-按下右鍵
3-同時按下左右按鈕
4-按下中鍵
5-按下左鍵和中鍵
6-按下右鍵和中鍵
7同時按下左中右鍵
mouseup的button屬性返回的數(shù)值和mousedown事件中的完全一樣。
注:在兼容DOM事件模型的所有瀏覽器中,0表示按下左鍵,數(shù)值1并不存在,2表示按下右鍵,對于非鼠標事件,返回“undefined”。
2 clientX、clientY屬性
這兩個屬性的類型都是Integer,單位是像素,可讀可寫。分別表示相關事件發(fā)生時,鼠標在瀏覽器的客戶端區(qū)域(不包括工具欄、滾動條等)的x坐標和y坐標。用一張圖片來解釋就再好不過了,請看:

圖3.1:clientX和clientY屬性
以下代碼是一個非常簡單的示例,它可以隨時定位鼠標的坐標,并將結果顯示在兩個文本框中,如果愿意的話,你可以嘗試運行它,兼容目前所有的現(xiàn)代瀏覽器。
示例代碼1:
<!DOCTYPE HTML PUBLIC "-//W3C//DTD HTML 4.01//EN" "http://www.w3.org/TR/html4/strict.dtd">
<html>
<head>
<meta http-equiv="Content-Type" content="text/html; charset=UTF-8" />
<title>Untitled Document</title>
<style type="text/css">
body{
border:1px solid black;
margin:0px;
}
</style>
<script type="text/javascript" language="JavaScript">
document.onmousemove=move;
function move(e){
if(!e)
{
e=window.event;
}
var xElement=document.getElementById("x");
var yElement=document.getElementById("y");
xElement.value=e.clientX;
yElement.value=e.clientY;
}
</script>
</head>
<body>
<input type="text" id="x" value="" />
<input type="text" id="y" value="" />
</body>
</html>
3 type屬性
相關文章
JavaScript回調(diào)(callback)函數(shù)概念自我理解及示例
此文適合JavaScript入門級選手閱讀,在JavaScript里什么叫Callback“回調(diào)函數(shù)”,把方法b當做一個參數(shù)傳遞個方法a,當方法a執(zhí)行完后執(zhí)行另外一個指定函數(shù)(這里是b函數(shù)),感興趣的朋友可以了解下哈2013-07-07基于javascript實現(xiàn)按圓形排列DIV元素(一)
本篇文章主要介紹基于javascript實現(xiàn)按圓形排列DIV元素的方法,此文著重于介紹對實現(xiàn)的按圓形排列DIV元素的分析,需要的朋友來看下吧2016-12-12獲取div編輯框,textarea,input text的光標位置 兼容IE,F(xiàn)F和Chrome的方法介紹
獲取div編輯框,textarea,input text的光標位置 兼容IE,F(xiàn)F和Chrome的方法介紹,有需求的朋友可以參考2012-11-11基于BootStrap Metronic開發(fā)框架經(jīng)驗小結【二】列表分頁處理和插件JSTree的使用
本文給大家介紹基于BootStrap Metronic開發(fā)框架經(jīng)驗小結【二】列表分頁處理和插件JSTree的使用,介紹頁面內(nèi)容常用到的數(shù)據(jù)分頁處理,以及Bootstrap插件JSTree的使用,非常具有參考借鑒價值,感興趣的朋友一起學習吧2016-05-05