我在附加音频方面遇到麻烦。
当页面滚动时,我会动态加载音频,但是,当我尝试播放它时,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");
          });
});

最佳答案

play event不会冒泡,因此您不能使用事件委托(delegate)。将元素添加到dom后,您需要绑定(bind)处理程序。

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++;
        }
    });
}

10-05 22:56
查看更多