A. js怎麼自定義事件,並能讓用on事件監聽
你這個問題全部內容應該是如下吧:
在視頻播放的時候,能夠用on監聽事件的觸發專,如下:
player.on('pause',function(){ console.log('視頻暫停屬');
})
player.on('ended',function(){ console.log('視頻結束')
})
這個是什麼原理,怎麼自定義類似pause、ended的事件,並能夠用on監聽?麻煩指教
相當於來說你要維護一個事件隊列。
player對象大概有這么些屬性
{ on: func(key, callback),
emit: func(key),
events: object
}
events是一個對象,數據結構如下:
{ pause: [func, func]
}
調用on函數時,把event的key以及callback添加到events中。
調用emit函數表示相應事件觸發,根據相應的key從events中獲取相應的callback數組,依次執行函數。
B. js onkeydown 事件能檢測兩個按鍵同時按下嗎 比如我同時按下 a 和 b
可以監聽到兩個來不同的自keyCode,a和b不能同時按下,你認為的同時,在計算機看來還是有先後順序,所以監聽到的是a和b都觸發了,但每次事件只有一個keyCode,所以你要檢測時需要自行記錄下狀態,keydown記錄下按鍵,keyup再取消這個按鍵,此時可以判斷另一個按鍵是否在記錄中,從而判斷兩個按鍵同時按
另外,shift ctrl等這些組合鍵可以直接在其他按鍵的事件中獲取到狀態,不需要自己記錄
C. JS如何觸發ondrop或者死ondrag事件
如:當你選中網頁里部分內容,就像拖動文件夾一樣拖動時,
ondrag將觸發,放開時,觸發ondrop
這兩個事件都為HTML5 里新加的事件,所以請到現行兼容HTML5的瀏覽器測試
D. javascript中涉及到事件,為什麼有時候有on,有時候有沒有
我理解的是on就是觸發的意思,onclick就是觸發點擊事件,不帶on就是一個普通的方法,如果我沒記錯click不是關鍵字,可以當變數開始用,所以說click可以當成屬性也可以當成方法,不過你想觸發的話還是需要onclick或者其他被觸發的事件來觸發這個方法。jQuery中可以直接.click()觸發,不過那是封裝好的事件方法,本質沒什麼區別,就使用上的區別了。