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

事件分類

鼠標事件

  • click/ mousedown/ mousemove/ mouseup/ contextmenu/ mouseover/ mouseout/ mouseenter/ mouseleave
  • 用button來區(qū)別鼠標的按鍵
  • DOM3標準規(guī)定: click事件只能監(jiān)聽左鍵, 只能通過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的沖突
    應(yīng)用時間差去區(qū)別, 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的區(qū)別
    • keydown可以響應(yīng)任意鍵盤按鍵, keypress只可以相應(yīng)字符類鍵盤按鍵
    • keypress返回ascii碼, 可以轉(zhuǎn)換成相應(yīng)字符串, charCode屬性記錄ascii, 并且keypress還可以記錄大小寫, 然而keydown不能, 但是keydown可以讀到所有按鍵, 例如上下左右, keydown只有which

文本操作事件

  • input //當(dāng)文本框輸入值時觸發(fā)事件
  • focus//聚焦
  • blur//失焦
  • change//判斷一次聚焦失焦時文本內(nèi)容是否發(fā)生變化, 變化時觸發(fā)事件

窗口操作類

  • scroll//當(dāng)滾動條滾動時觸發(fā)
  • load//頁面加載完畢之后執(zhí)行

最后編輯于
?著作權(quán)歸作者所有,轉(zhuǎn)載或內(nèi)容合作請聯(lián)系作者
【社區(qū)內(nèi)容提示】社區(qū)部分內(nèi)容疑似由AI輔助生成,瀏覽時請結(jié)合常識與多方信息審慎甄別。
平臺聲明:文章內(nèi)容(如有圖片或視頻亦包括在內(nèi))由作者上傳并發(fā)布,文章內(nèi)容僅代表作者本人觀點,簡書系信息發(fā)布平臺,僅提供信息存儲服務(wù)。

相關(guān)閱讀更多精彩內(nèi)容

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

友情鏈接更多精彩內(nèi)容