...时间过得真快, 一晃4天已经过去了, 然而自己并没有动笔写什么. 自省.

看了看今天的工作, 感觉好像没什么可写的. 不禁在想是不是一天一篇有点儿难. 再一想, 这分明就是在给自己找理由. 就是再短也应该把当天学到的任何东西整理一下, 怎么都是有的写的! 如果完全没得写, 那我倒是要反思下我今天是不是太虚度了.

废话不多说, 整理下这两天的收获. (最近一直写code但是很少记录, 提醒自己以后坚持记录!)


我发现我用knockout给audio元素绑定了pause事件, 形如<audio data-bind="event: { pause: pauseHandler }"...但是用$('audio').trigger('pause')无法暂停audio播放. 很诡异.

于是我为audioplaypause事件都绑上了console.log, 发现trigger('play')会输出两次playtrigger('pause')只会输出一个pause. 但是如果用.play().pause()就可以正常地播放和停止音频, 同时只会输出一个playpause.

为什么$('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 true from your event handler function.

Knockout绑定audio的pause事件导致音频无法停止的更多相关文章

  1. jsp中一个标签两种方式绑定两个click事件导致未执行的问题

    近日,在开发过程中,写了一个标签 <li id="a1" onclick="doSomething()">...</li> 在js页面中 ...

  2. Html5视频播放器-VideoJS+Audio标签实现视频,音频及字幕同步播放

    一,VideoJS介绍 引用脚本,videojs很为你着想,直接cdn了,你都不需要下载这些代码放入自己的网站 <link href=”http://vjs.zencdn.net/c/video ...

  3. KnockOut绑定

    KnockOut绑定之Click绑定 Click绑定对DOM元素添加一个函数,当DOM元素被点击的时候调用.在button,input 或者a标签中常用,但其实他适用于任何可见的DOM元素. exam ...

  4. video元素和audio元素相关事件

    前言 在利用video元素或audio元素读取或播放媒体数据时,会触发一系列事件,如果用js脚本来捕抓这些事件,就可以对着这些事件进行处理了. 捕抓的方式有两种: 第一种是监听的方式.使用vedio或 ...

  5. jquery移除、绑定、触发元素事件使用示例详解

    这篇文章主要介绍了jquery移除.绑定.触发元素事件使用示例详解,需要的朋友可以参考下. unbind(type [,data]) //data是要移除的函数 $('#btn').unbind(&q ...

  6. jquery一次绑定多个元素事件

    jquery一次绑定多个元素事件 $(".peoplenum,input[name$='otherAmount'],#aa,#bb").bind("change" ...

  7. jQuery 事件绑定 和 JavaScript 原生事件绑定

    总结一下:jQuery 事件绑定 和 JavaScript 原生事件绑定 及 区别 jQuery 事件绑定 jQuery 中提供了四种事件监听绑定方式,分别是 bind.live.delegate.o ...

  8. 使用jquery移除前面通过onclick绑定的元素的事件,然后重新绑定别的函数来执行onclick事件。

    http://caibaojian.com/css3/experience/bugs.htm 使用jquery移除前面通过onclick绑定的元素的事件,然后重新绑定别的函数来执行onclick事件. ...

  9. 如何在DataTemplate中绑定RadioButton的Checked事件

    在我们的项目中经常要用到数据模板,最近做的一个项目中在数据模板中要放一些RadioButton,其中每一个RadioButton设置了Checked事件,如果直接在View层写Checked事件的话不 ...

随机推荐

  1. 万网免费主机wordpress快速建站教程-域名申请

    在上一篇文章中,小伙伴们已经申请好了万网的免费主机,接下来教大家如何申请域名. 由于万网免费主机要绑定在阿里备案的域名,现在以万网的域名注册为例子. 首先进入万网域名注册页面(http://www.n ...

  2. uploadify上传控件使用

    uploadify是JQuery的一个上传插件,实现的效果非常不错,并且带进度显示,我将给大家演示如何使用uploadify进行图片上传, 1.点我下载http://www.uploadify.com ...

  3. 学会用Reflector调试我们的MVC框架代码

    我们知道,现在能调试.net程序通常有两个,第一个是ILSpy,还是一个是Reflector,这两个小反编译软件算是我们研究底层代码中所拥有的一把 锋利小尖刀~~~,比如你看到的ILSpy这样的界面图 ...

  4. 彻底理解PHP的SESSION机制

    http://www.cnblogs.com/acpp/archive/2011/06/10/2077592.html 一.默认机制,用磁盘文件来实现PHP会话.php.ini配置:session.s ...

  5. 使用instsrv.exe+srvany.exe将应用程序安装为windows服务[转]

      转自:http://qingmu.blog.51cto.com/4571483/1248649 一.什么是instsrv.exe和srvany.exe instsrv.exe.exe和srvany ...

  6. web services 接口测试方法

    public class Test { public static void main(String[] args) { JaxWsProxyFactoryBean factory = new Jax ...

  7. UIView的常见属性

    UIView的常见属性: @interface UIView : UIResponder<NSCoding, UIAppearance, UIAppearanceContainer, UIDyn ...

  8. [转]:移动端H5页面高清多屏适配方案

    原文链接:http://www.tuicool.com/articles/YJviea 背景 开发移动端H5页面 面对不同分辨率的手机 面对不同屏幕尺寸的手机 视觉稿 在前端开发之前,视觉MM会给我们 ...

  9. 03_MySQL中文乱码处理_02_确保MySQL插入数据不乱码的解决方法

    [要统一MySQL数据库客户端 和 服务端的字符集] 如下,就是不统一的情况: 通常,MySQL数据库的下面几个字符集(客户端 和 服务端)统一成一个字符集(即" show variable ...

  10. JavaWeb网上商城的反思

    不知道从什么时候起,我爱上了写博客,对之前学得的只是进行反思.写了几天课程设计,代码量量8.9千左右. 然后下面文字是我在博客上复制过来的,说得很详细 MVC(Model View Controlle ...