1. 程式人生 > >JS DOM事件

JS DOM事件

event對象 用戶名 mouseover ons 觸發 cli focus 發生 onclick

一.DOM事件格式

元素對象.on事件名稱 = function(){
        // 事件發生時,執行的代碼
    }
onclick        當用戶點擊某個對象時調用的事件句柄。
ondblclick     當用戶雙擊某個對象時調用的事件句柄。

onfocus        元素獲得焦點。               //練習:輸入框
onblur         元素失去焦點。               應用場景:用於表單驗證,用戶離開某個輸入框時,代表已經輸入完了,我們可以對它進行驗證.
onchange       域的內容被改變。             應用場景:通常用於表單元素,當元素內容被改變時觸發.(三級聯動)

onkeydown      某個鍵盤按鍵被按下。          應用場景: 當用戶在最後一個輸入框按下回車按鍵時,表單提交.
onkeypress     某個鍵盤按鍵被按下並松開。
onkeyup        某個鍵盤按鍵被松開。
onload         一張頁面或一幅圖像完成加載。
onmousedown 鼠標按鈕被按下。 onmousemove 鼠標被移動。 onmouseout 鼠標從某元素移開。 onmouseover 鼠標移到某元素之上。 onmouseleave 鼠標從元素離開 onselect 文本被選中。 onsubmit 確認按鈕被點擊。

eg1: onfocus onblur onmouseover onmouseout

<body>

<form action="" id="from1">
    <input type="text" name="username" value="請輸入用戶名"><span style="font-style: italic"></span>
    <p></p>
    <input type="text" name="passwd" value="請輸入密碼">
    <p></p>
    <input type="submit" value="提交">
</form>

<h1 id="one">點擊我領取屠龍寶刀!</h1>
<script>
    ele_form 
= document.getElementById("from1");
ele_form.onsubmit
=function(){ console.log(this) //阻止事件方式1 false表示攔截表單提交 其他放行 return false; };
ele_form.onsubmit=function(event){
    console.log(this)
    //阻止事件方式2 event.preventDefault
    
event.preventDefault();
};
var name_ele = document.getElementsByName("username")[0];
//獲得焦點時執行 name_ele.onfocus = function () { // 函數中name_ele可以用this替代 if (this.value == "請輸入用戶名") { //if (name_ele.value == "請輸入用戶名") { name_ele.value = ""; ele_span = name_ele.nextElementSibling; ele_span.innerHTML = "SB"; console.log(ele_span); } console.log(name_ele.value); }; //失去焦點執行 name_ele.onblur = function () { if (!name_ele.value.trim()) { name_ele.value = "請輸入用戶名"; ele_span = name_ele.nextElementSibling; ele_span.innerHTML = ""; } console.log(name_ele.value); }; console.log(name_ele.value); var btn = document.getElementById("one"); btn.onclick = function () { alert("我是渣渣輝,是兄弟就來砍我"); }; /* mouseover 鼠標停留的時候 */ btn.onmouseover = function () { btn.style.color = "red"; }; /* mouseout 鼠標離開的時候 */ btn.onmouseout = function () { btn.style.color = "blue"; }; </script>

Event 對象

Event 對象代表事件的狀態,比如事件在其中發生的元素、鍵盤按鍵的狀態、鼠標的位置、鼠標按鈕的狀態。

事件通常與函數結合使用,函數不會在事件發生前被執行!event對象在事件發生時系統已經創建好了,並且會在事件函數被調用時傳給事件函數.我們獲得僅僅需要接收一下即可.

比如onkeydown,我們想知道哪個鍵被按下了,需要問下event對象的屬性,這裏就時KeyCode;

思考:onclick=function(event){};這個方法是誰調用的?

事件傳播:

<div id="abc_1" style="border:1px solid red;width:300px;height:300px;">
        <div id="abc_2" style="border:1px solid red;width:200px;height:200px;">
        
        </div>
    </div>
    <script type="text/javascript">
    document.getElementById("abc_1").onclick=function(){
        alert(‘111‘);
    }
    document.getElementById("abc_2").onclick=function(event){
        alert(‘222‘);
        event.stopPropagation(); //阻止事件向外層div傳播.
    }
    
</script>

參考:

https://www.cnblogs.com/chichung/p/9688399.html

https://www.cnblogs.com/yuanchenqi/articles/5980312.html

JS DOM事件