[英]Bind all available events to an element
我可以將all the available events
綁定到an element
$('body').on('all available events', '.element', function(e) {
if (e.type == 'click') {
// do something...
}
else if (e.type == 'change') {
// do something else...
}
});
我不想給他們像
$('body').on("change click", '.element', function(e) {...});
我不建議您這樣做,但是如果您想:
$('body').on('blur focus focusin focusout load resize scroll unload click dblclick mousedown mouseup mousemove mouseover mouseout mouseenter mouseleave change select submit keydown keypress keyup error contextmenu', function(e) {
// Your code here
});
參考: https : //github.com/jquery/jquery/blob/master/src/event/alias.js#L6
似乎是個壞主意,但是您可以通過在元素上運行Object.keys
並過濾掉以on...
開頭的所有內容來獲取元素上的所有可用事件。
要將其傳遞給jQuery, on...
部分也必須刪除
var props = Object.keys(document.body).filter(function(x) {
return x.indexOf('on') === 0;
}).map(function(x) {
return x.replace('on','');
}).join(" ");
$('body').on(props, '.element', function(e) {
console.log(e.type)
});
在我的瀏覽器中,將事件處理程序綁定到
卸下
存儲
popstate
pageshow
pagehide
線上
離線
信息
languagechange
hashchange
beforeunload
滾動
調整
加載
焦點
錯誤
模糊
autocompleteerror
自動完成
等候
volumechange
切換
timeupdate
暫停
提交
停滯
節目
選擇
求
seeked
重啟
ratechange
進展
播放
玩
暫停
鼠標滾輪
鼠標松開
鼠標移到
鼠標移開
鼠標移動
鼠標離開
的mouseenter
鼠標按下
loadstart
等待loadedmetadata
loadeddata
KEYUP
按鍵
KEYDOWN
無效
輸入
結束
清空
durationchange
下降
的dragstart
的dragover
dragleave
的dragenter
dragend
拖動
DBLCLICK
cuechange
上下文菜單
關
點擊
更改
canplaythrough
可以玩
取消
退出
webkitfullscreenerror
webkitfullscreenchange
輪
選擇開始
搜索
糊
切
復制
beforepaste
beforecut
beforecopy
您不應該將所有事件綁定到您的處理程序,因為您不知道什么是“全部”,因此對於幾乎所有應用程序來說都是不好的做法。 同樣,您不能綁定到所有事件,因為jQuery內部使用的addEventListener
要求您聲明要偵聽的類型。 即使您具有“所有”事件的列表,仍然可以定義具有其任意名稱的自定義事件。
聲明:本站的技術帖子網頁,遵循CC BY-SA 4.0協議,如果您需要轉載,請注明本站網址或者原文地址。任何問題請咨詢:yoyou2525@163.com.