为什么`$(’audio’)。触发(播放)`两次触发playHandler而’$(’audio’) .play()`只触发一次?
我以前认为trigger(play)
只是触发音频的原生play
function,但今天我只是注意到这两种方法之间存在细微差别。 如果你注册了一个回调play
,例如$('audio').on('play', function() { console.log('playing'); })
,如果使用trigger(play)
,则会调用两次回调trigger(play)
但是在使用play()
时只有一次。
- 怎么会出现这种差异?
- 是否有可能使
trigger(play)
仅触发play callback
一次,以便防止潜在的错误?
[试玩]
更新
在演示中,我调用trigger('play')
和trigger('pause')
然后play()
和pause()
。 结果是
// the following four lines are generated by trigger calls play play pause pause // the following two lines are generated by native calls play pause
这个演示可以说明我在说什么。
这个问题可以转载于:
- Chrome版本46.0.2490.86米
- IE 11.0.9600.18053
- FireFox 42.0