javascript事件, 解決mousedown和click沖突事件, 鼠標事件, 鍵盤事件, 文本事件用法簡介

事件分類

鼠標事件

  • click/ mousedown/ mousemove/ mouseup/ contextmenu/ mouseover/ mouseout/ mouseenter/ mouseleave
  • 用button來區別鼠標的按鍵
  • DOM3標準規定: click事件只能監聽左鍵, 只能通過mousedown和mouseup來判斷鼠標鍵
  • 鼠標左鍵button = 0, 右鍵button = 2, 滑輪 button = 1
    eg:
var div = document.getElementsByTagName('div')[0];
div.onmousedown = function (e) {
    var event = e || window.event;
    if(event.button == 2){
        console.log('right');
    }else if(event.button == 0){
        console.log('left');
    }
}
  • 如何解決mousedown和click的沖突
    應用時間差去區別, click的點擊時間快
    eg:
var div = document.getElementsByTagName('div')[0];
var key = false;
var firstTime = 0;
var lastTime = 0;
div.onclick = function() {
    if(key){
        console.log('click');
        key = false;
    }
}
div.onmousedown = function() {
    firstTime = new Date().getTime();
    console.log('mouseDown');
}
div.onmouseup = function() {
    console.log('mouseUp');
    lastTime = new Date().getTime();
    if( (lastTime - firstTime) < 200){
        key = true;
    }
}

鍵盤事件

  • keydown keyup keypress
  • keydown > keypress > keyup
  • keydown和keypress的區別
    • keydown可以響應任意鍵盤按鍵, keypress只可以相應字符類鍵盤按鍵
    • keypress返回ascii碼, 可以轉換成相應字符串, charCode屬性記錄ascii, 并且keypress還可以記錄大小寫, 然而keydown不能, 但是keydown可以讀到所有按鍵, 例如上下左右, keydown只有which

文本操作事件

  • input //當文本框輸入值時觸發事件
  • focus//聚焦
  • blur//失焦
  • change//判斷一次聚焦失焦時文本內容是否發生變化, 變化時觸發事件

窗口操作類

  • scroll//當滾動條滾動時觸發
  • load//頁面加載完畢之后執行

最后編輯于
?著作權歸作者所有,轉載或內容合作請聯系作者
平臺聲明:文章內容(如有圖片或視頻亦包括在內)由作者上傳并發布,文章內容僅代表作者本人觀點,簡書系信息發布平臺,僅提供信息存儲服務。

推薦閱讀更多精彩內容

  • 總結: 鼠標事件 1.click與dbclick事件$ele.click()$ele.click(handler(...
    阿r阿r閱讀 1,631評論 2 10
  • (續jQuery基礎(1)) 第5章 DOM節點的復制與替換 (1)DOM拷貝clone() 克隆節點是DOM的常...
    凜0_0閱讀 1,363評論 0 8
  • 事件流 IE和Netscape開發團隊提出了完全相反的兩種事件流的概念,事件冒泡流和事件捕獲流。 事件冒泡 事件由...
    exialym閱讀 984評論 0 9
  • pragma mark 分類練習 pragma mark 概念 pragma mark 代碼 Person.h /...
    liyuhong165閱讀 134評論 0 0
  • 1、從來不去想:“如果當初" 2、適當的糊涂 3、平衡各種利益 4、適當的彎腰 5、拿捏好“度” 6、淡定,即便天...
    P尐c閱讀 645評論 0 1