...时间过得真快, 一晃4天已通过去了, 然而本身并无动笔写什么. 自省.html
看了看今天的工做, 感受好像没什么可写的. 不由在想是否是一天一篇有点儿难. 再一想, 这分明就是在给本身找理由. 就是再短也应该把当天学到的任何东西整理一下, 怎么都是有的写的! 若是彻底没得写, 那我却是要反思下我今天是否是太虚度了.dom
废话很少说, 整理下这两天的收获. (最近一直写code可是不多记录, 提醒本身之后坚持记录!)spa
我发现我用knockout给audio元素绑定了pause
事件, 形如<audio data-bind="event: { pause: pauseHandler }"...
可是用$('audio').trigger('pause')
没法暂停audio播放. 很诡异.code
因而我为audio
的play
和pause
事件都绑上了console.log
, 发现trigger('play')
会输出两次play
而trigger('pause')
只会输出一个pause
. 可是若是用.play()
和.pause()
就能够正常地播放和中止音频, 同时只会输出一个play
和pause
.htm
搜索一阵无果就在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 handlerip
可是至于可否用trigger('play')
只触发一次playHandler
, 并无获得答复.element
trigger('pause')
暂停音频?本身摸索出来了答案, 只要给pauseHandler
加上return true;
便可. 可是不明白为何必需要这么加, 因而问了一记, 本身才发现spec上写得清清楚楚:get
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
true
from your event handler function.it