首页 > 解决方案 > 如何对ajax加载的内容执行jquery每个功能?

问题描述

我正在尝试向使用 jQuery 的旧站点添加一些代码。代码的目的是将自动播放、循环和静音变量添加到 Vimeo iframe 的 src(当视频旨在像动画 gif 一样显示时)。我已经在另一个站点上成功实现了这一点,但是我在这个站点上遇到的问题是页面加载了 ajax,所以我无法定位 iframe,因为它们最初不存在于页面上。

这是代码:

function vimeo_funtimes() {
    $('iframe').each(function( index ) {
        var vimeosrc = $(this).attr('src') + '?background=1&autoplay=1&loop=1&muted=1';
        $(this).attr('src', vimeosrc);
    }); 
}

然后在加载 ajax 内容后调用此函数。

我发现很多帖子都指出,当这是一个点击事件时,它需要被委派。但是,这不是点击事件,它应该只是在内容加载后发生,所以我不确定这是否可以完成。

上面的例子在这里: isaidicanshout.com

如您所见,没有一个视频附有自动播放代码。

标签: jqueryiframeeach

解决方案


这是一个触手可及的时刻,但我能够通过添加一个 setTimeout 来解决这个问题,这样该函数在页面加载之前不会尝试修改视频。

function vimeo_funtimes() {
    setTimeout( function() {
        $('iframe').each(function( index ) {
            var vimeosrc = $(this).attr('src') + '?background=1&autoplay=1&loop=1&muted=1';
            $(this).attr('src', vimeosrc);
        }); 
    }, 500 )
}

推荐阅读