我知道我可以触发任何我喜欢使用的虚构事件,$('#x').trigger('y')
但我想创建一个新的事件类型,它可以绑定到任何 DOM 元素并且除非被监听,否则不会被触发。
例如,我想创建:
$('#mydiv').on('wheel', function(e) {
// do something with e
});
“轮子”是我的自定义事件。一旦“轮子”被绑定,它应该绑定真实事件:
$(???).on('mousewheel DOMMouseScroll', function(e) {
e.delta = null;
if (e.originalEvent) {
if (e.originalEvent.wheelDelta) e.delta = e.originalEvent.wheelDelta / -40;
if (e.originalEvent.deltaY) e.delta = e.originalEvent.deltaY;
if (e.originalEvent.detail) e.delta = e.originalEvent.detail;
}
$(this).trigger('wheel', e);
});
有没有办法做到这一点?
注意:我不想监听$(document)
任何车轮事件;它应该只在选定的元素上侦听,并且仅在绑定事件时才侦听。