无法在init处绑定事件处理程序

时间:2014-09-01 14:25:14

标签: javascript jquery events audio

我有一个动态创建音频预览元素的表单。我希望在浏览器处理完音频元素后执行代码。以下作品:

在创建音频元素后执行

  $('audio').on('loadeddata', ->
    alert "test audio"
  )

但只有在创建元素后绑定事件时它才有效。我正在寻找一种方法将事件绑定到所有未来的音频'文档onload上的标签。以下不起作用:

永不运作

$(document).on('loadeddata', 'audio', ->
  alert "test audio"
)

以下内容始终有效

$(document).on('click', 'audio', ->
  alert "test audio"
)

我的目标是能够在加载文档时绑定these events一次。任何帮助或见解将不胜感激。

修改

因为我正在使用带有turbolinks的rails我执行以上片段同时包含ready和onload事件。所以代码是:

reload = ->
  #relevant code here

$(document).on 'page:load', reload

$ -> reload()

2 个答案:

答案 0 :(得分:0)

在文档完全加载后开始处理事件:

$(document).ready(function(){
    $(document).on('loadeddata', 'audio', function(){
      alert "test audio"

     });
});

答案 1 :(得分:0)

尝试在

中绑定这些事件
$(document).ready(function(){
        // bind your events here
});