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()触发,不过那是封装好的事件方法,本质没什么区别,就使用上的区别了。