...時間過得真快, 一晃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