如何对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每个功能?的主要内容,如果未能解决你的问题,请参考以下文章
如何在 DJango 中停止页面重新加载 ajax jquery
如何使用 jquery 添加包含 AngularJS 表达式的 ajax 加载内容