使用附加音频

时间:2015-07-06 10:26:26

标签: javascript jquery audio

我的附加音频有问题。 当页面滚动时,我动态加载音频,但是当我试图播放音频时,div,其中找到的音频不会改变它的属性,如何解决那? 我如何追加:

$(window).scroll(function(){
            if(scrollCount == 0){
                if($(window).scrollTop() > 200){
                    AddMoreContent();
                }
            } else{
                if($(window).scrollTop() > $(window).height() * scrollCount - 100) {
                    AddMoreContent();
                }
            }
        });  

     function AddMoreContent(){
         $.ajax({url:thisPage + "/" + thisPage + "." + scrollCount +".html",context: document.body, success: function(response){
                $("#main-content").append(response);
             scrollCount++;
         }
        });
     }

我如何收听音频事件:

$(document).ready(function () {
        $("audio").on("play", function () {
            var _this = $(this);
            //$("audio").each(function (i, el) {
            //    if (!$(el).is(_this))
            //        $(el).get(0).pause();
            //    $(el).parent().removeClass("intro");
            //});
            _this.parent().addClass("intro");
          });
});

2 个答案:

答案 0 :(得分:0)

假设通过audio请求追加$.ajax个元素,您需要使用委托事件处理程序:

$('#main-content').on('play', 'audio', function() {
    $(this).parent().addClass('intro');
    // your code here...
});

答案 1 :(得分:0)

IHttpContextAccessor没有冒泡,因此您无法使用事件委派。一旦将元素添加到dom中,您需要绑定处理程序,以便

function AddMoreContent() {
    $.ajax({
        url: thisPage + "/" + thisPage + "." + scrollCount + ".html",
        context: document.body,
        success: function (response) {
            var $els  = $(response);
            $("#main-content").append($els);
            //use .filter if the audio elements are in the root level of response
            $els.find("audio").on('play', function () {
                //do your stuff
            });
            scrollCount++;
        }
    });
}