如何对ajax加载的内容执行jquery每个功能?

Posted

技术标签:

【中文标题】如何对ajax加载的内容执行jquery每个功能?【英文标题】:How to perform jquery each function on ajax loaded content? 【发布时间】:2021-05-11 19:33:47 【问题描述】:

我正在尝试向使用 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

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

【问题讨论】:

帧加载成功后是否调用vimeo_funtimes()?如果没有,为什么不在加载 iFrame 之前添加参数?我们需要看起来更多的代码和一个对象示例 如果在加载时完成,只需包裹$(function() .... ) 【参考方案1】:

这是一个触手可及的时刻,但我能够通过添加一个 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 )

【讨论】:

通常是这样$(function() $('iframe').each(function( index ) var vimeosrc = $(this).attr('src') + '?background=1&autoplay=1&loop=1&muted=1'; $(this).attr('src', vimeosrc); ); )

以上是关于如何对ajax加载的内容执行jquery每个功能?的主要内容,如果未能解决你的问题,请参考以下文章

如何在 Ajax 加载的内容上绑定事件?

如何在 DJango 中停止页面重新加载 ajax jquery

如何使用 jquery 添加包含 AngularJS 表达式的 ajax 加载内容

ajax 加载内容,脚本未执行

通过 Jquery Ajax 函数加载后不渲染 KnockoutJS 元素

如何在 Ajax 请求后重新生成 jQuery Mobile 样式?