Knockout绑定audio的pause事件导致音频无法停止
2015-11-17 20:55
344 查看
...时间过得真快, 一晃4天已经过去了, 然而自己并没有动笔写什么. 自省.
看了看今天的工作, 感觉好像没什么可写的. 不禁在想是不是一天一篇有点儿难. 再一想, 这分明就是在给自己找理由. 就是再短也应该把当天学到的任何东西整理一下, 怎么都是有的写的! 如果完全没得写, 那我倒是要反思下我今天是不是太虚度了.
废话不多说, 整理下这两天的收获. (最近一直写code但是很少记录, 提醒自己以后坚持记录!)
我发现我用knockout给audio元素绑定了
于是我为
但是至于能否用
为什么用Knockout绑定pause事件后无法用
自己摸索出来了答案, 只要给
By default, Knockout will prevent the event from taking any default action....However, if you do want to let the default action proceed, just return
看了看今天的工作, 感觉好像没什么可写的. 不禁在想是不是一天一篇有点儿难. 再一想, 这分明就是在给自己找理由. 就是再短也应该把当天学到的任何东西整理一下, 怎么都是有的写的! 如果完全没得写, 那我倒是要反思下我今天是不是太虚度了.
废话不多说, 整理下这两天的收获. (最近一直写code但是很少记录, 提醒自己以后坚持记录!)
我发现我用knockout给audio元素绑定了
pause事件, 形如
<audio data-bind="event: { pause: pauseHandler }"...但是用
$('audio').trigger('pause')无法暂停audio播放. 很诡异.
于是我为
audio的
play和
pause事件都绑上了
console.log, 发现
trigger('play')会输出两次
play而
trigger('pause')只会输出一个
pause. 但是如果用
.play()和
.pause()就可以正常地播放和停止音频, 同时只会输出一个
play和
pause.
为什么$('audio').trigger('play')会出发playHandler两次而$('audio')[0].play()只会触发一次?
搜索一阵无果就在stackoverflow上问了一下, 得到的解答是:trigger('play')triggers your handler programmatically, which dispatches the play event on the audio element, once the clip starts playing, the play event is dispatched again, triggering your handler a second time, whereas
$('audio')[0].play()won't trigger your handler initially, it'll trigger the dom element's native play event, which, when it starts playing will trigger your handler
但是至于能否用
trigger('play')只触发一次
playHandler, 并没有得到答复.
为什么用Knockout绑定pause事件后无法用trigger('pause')
暂停音频?
自己摸索出来了答案, 只要给pauseHandler加上
return true;即可. 但是不明白为什么必须要这么加, 于是问了一记, 自己才发现spec上写得清清楚楚:
By default, Knockout will prevent the event from taking any default action....However, if you do want to let the default action proceed, just return
truefrom your event handler function.
相关文章推荐
- Android Service的生命周期
- flex 弹性布局
- 《leetCode》:Jump Game
- 【SSH进阶之路】Hibernate系列——总结篇(九)
- jQuery遮罩插件jQuery.blockUI介绍及使用
- django模型中auto_now和auto_now_add的区别
- "ORACLE数据字典视图的种类分别为:USER,ALL 和 DBA.
- ListView的性能优化
- 阿里云Ubuntu下部署javaWeb项目
- 基于Python的机器学习实战:AadBoost
- 【SSH进阶之路】Hibernate映射——多对多关联映射(八)
- 数值的整数次方
- 程序员必读书单
- web前端性能监控
- NSNotification、delegate和KVO的区别
- Kettle 连接失败 Oracle 数据库报 ora-12505 的解决方法
- TCP/IP详解之:Ping程序、Traceroute程序
- cf#238
- hadoop 入门 -- 图片都没了,晕,后面再补上试试
- 关于函数的参数传递