在动态创建的音频对象中播放时访问

时间:2017-09-23 16:40:44

标签: jquery dom audio html5-audio

我在网页上有一个简单的播放计数器用于音频文件。它适用于最初加载的音频文件,但不适用于另一个jQuery ajax将其更新为具有相同类的其他文件等(文件播放)

        jQuery(document).ready(function($) {

            /*now events will only be bound to this instance*/ 
            $('body .sermonmp3').on('playing',function(){
                /* within event callbacks keep searches within the main container element*/                     
                var fileID=$(this).attr('id');
                console.log(fileID);
                var data = {file_id: fileID ,security:ChurchAdminAjax.security};

                jQuery.post(ChurchAdminAjax.ajaxurl, { 'action': 'ca_mp3_action','data':   data }, 
                    function(response){
                        console.log(response);
                        $('body .plays').html(response);

                    }
                );

            });

});

我做错了什么?

1 个答案:

答案 0 :(得分:0)

通过将代码放在函数中并在每次创建新音频元素时调用它来解决此问题。

        function bindEvents(){

            $('body .sermonmp3').on('playing',function(){

                var fileID=$(this).attr('id');
                console.log(fileID);
                var data = {file_id: fileID ,security:ChurchAdminAjax.security};

                jQuery.post(ChurchAdminAjax.ajaxurl, { 'action': 'ca_mp3_action','data':   data }, 
                    function(response){
                        console.log(response);
                        $('body .plays').html(response);

                    }
                );

            });
        }