從這一節開始,我們正式步入JavaScript各種事件的實操訓練了。JavaScript是基於事件模型的語言。JavaScript事件,這可是JavaScript的精髓所在,也是JavaScript入門教程學習中的重中之重。
在JavaScript中,常用的鼠標事件如下:
通常,事件處理器的命名原則是,在事件名稱前加上前綴on。例如,對於click事件,其處理器名為onclick。對於事件名稱,也是很好記憶的,顧名思義即可。
雙擊事件ondbclick很少用,就不在這裡啰嗦。下面我們這一節先來給大家講解一下JavaScript中比較實用的鼠標事件。
在JavaScript中,鼠標單擊事件是onclick。
單擊事件可謂JavaScript中最常用的事件了,在之前的學習中我們也接觸了不少,例如點擊某個按鈕彈出一個提示框。這裡大家一定要注意一點,單擊事件並不是只有按鈕才有,任何元素我們都可以為它添加單擊事件!
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
#btn
{
display:inline-block;
width:80px;
height:24px;
line-height:24px;
text-align:center;
border-radius:3px;
background-color:rgba(69,184,35,1.0);
color:White;
cursor:pointer;
}
#btn:hover
{
background-color:rgba(69,184,35,0.8);
}
</style>
</head>
<body>
<div id="btn">調試代碼</div>
<script type="text/javascript">
var e = document.getElementById("btn");
e.onclick = function () {
alert("玩我麼?");
}
</script>
</body>
</html>
在浏覽器預覽效果如下:
分析:
這裡使用div元素仿照 學習網的在線代碼測試工具,模擬一個動態按鈕,並且為div元素添加單擊事件onclick。當我們點擊“調試代碼”按鈕之後,會彈出提示框。
之所以設計這個例子,這也是給讀者說明一點:任何元素我們都可以為它添加單擊事件!
當然上面的CSS有些看不懂沒關系,裡面涉及的高級技術請關注CSS3教程,好東西俺同樣會給大家分享。
在JavaScript中,鼠標移入和移出事件分別是onmouseover和onmouseout。
其實, onmouseover和onmouseout這2個事件其實是好基友關系,平常都形影不離。這2個事件都是共同使用來分別控制鼠標“移入”和“移出”2種狀態的。例如,下拉菜單導航中,鼠標移入主導航時會顯示對應的二級下拉菜單,鼠標移出主導航時二級下拉菜單就會收起來。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
#lvye
{
display:inline-block;
border:1px dashed black;
}
</style>
</head>
<body>
<h1 id="lvye"> 學習網</h1>
<script type="text/javascript">
var e = document.getElementById("lvye");
e.onmouseover = function () {
this.style.color = "red";
this.style.borderColor="red"
}
e.onmouseout = function () {
this.style.color = "black";
this.style.borderColor = "black"
}
</script>
</body>
</html>
在浏覽器預覽效果如下:
分析:
this.style.color = "black";
在這裡this指向的是e元素節點,也就是說這句代碼等價於:
e.style.color = "black";
關於this的使用比較復雜,我們這裡只是給初學者混個眼熟先。如果站長寫教程還沒累死的話,以後在JavaScript進階教程中我們再詳細給大家探討。
上面例子是在script標簽中編寫事件,當然同樣地我們也可以在元素內部屬性中編寫。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
<style type="text/css">
#lvye
{
display:inline-block;
border:1px dashed black;
}
</style>
</head>
<body>
<h1 id="lvye" onmouseover="this.style.color='red';this.style.borderColor='red';" onmouseout="this.style.color='black';this.style.borderColor='black';"> 學習網</h1>
</body>
</html>
在浏覽器預覽效果如下:
分析:
這個例子跟第一個例子實際效果是一樣的,僅僅是調用方式不同,導致語法也略有不同。大家從中好好對比這兩種JavaScript調用事件方式的不同,並且理解一下this的用法,並且自己實踐一下。
上面例子雖簡單,但是已經交給大家方法了。大家可以根據onmouseover和onmouseout這2個事件來設計一下下拉菜單,考驗大家能力的時候到了。
在JavaScript中,鼠標的按下和松開事件分別是onmousedown和onmouseup。又一對好基友閃亮登場。
onmousedown表示鼠標按下的一瞬間所觸發的事件,而onmouseup表示鼠標松開的一瞬間所觸發的事件。當然我們都知道,只有“按下”才有“松開”這一說。說他倆整天搞基一點不為過。
舉例:
在線測試
<!DOCTYPE html>
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
<title></title>
</head>
<body>
<div id="main">
<h1 id="lvye"> 學習網</h1>
<hr />
<input id="btn" type="button" value="button" />
</div>
<script type="text/javascript">
var btn = document.getElementById("btn");
var e = document.getElementById("lvye");
btn.onmousedown = function () {
e.style.color = "red";
}
btn.onmouseup = function () {
e.style.color = "black";
}
</script>
</body>
</html>
在浏覽器預覽效果如下:
分析:
在實際開發中,onmousedown和onmouseup這2個事件比較少用。