在for循环中仅调用一次事件

匿名

一直试图解决这个问题几个小时,但我似乎找不到解决方案。

基本上,我有一个使用HTML5的音频播放器。音频播放时有一个事件侦听器,它每秒触发一次,直到音频结束。

我根据API给出的时间戳在音频时间线上生成标记,看起来像这样。

在此处输入图片说明

这里放置了三个标记-如果总持续时间为60秒,则标记应该为5、10、29。

在每个标记之后,我需要从DOM上的API更改图像和段落文本,然后使用jquery做到这一点。

在“ timeupdate”侦听器内部,我有一个for循环,该循环遍历DOM上的每个标记,然后检查音频对象的“ currentTime”是否小于“ timestamp”。

 audioObject.addEventListener('timeupdate', () =>
 {
     for (let i = 0; i < $(options.markers).length; i++)
     {
         // If the current time of the audio is greater than the first timestamp second, continue
         if (options.audioObject.currentTime > options.podcastData[i].timestamp)
         {
             options.coverImage.attr('src', options.podcastData[i].image);
             options.theTitle.text(options.podcastData[i].name)
         }
     }

 }, false)

现在可以使用,但是它每秒更新一次DOM,因此我看到Inspector元素上闪烁,直到播客结束为止。

我需要的是仅在DOM超过标记时才更新DOM,但此刻我似乎找不到解决方法。

保罗·鲁布

我将进行两项更改:

  1. 以相反的顺序浏览列表,并在遇到比赛后退出。照原样,您无需设置和重置属性。
  2. 显示每个选项后,在其上设置一个“ seen”属性。不要显示两次。
 for (let i = $(options.markers).length - 1; i >= 0; i--)
 {
     if (options.audioObject.currentTime > options.podcastData[i].timestamp)
     {
         if (! options.podcastData[i].seen)
         {
           options.coverImage.attr('src', options.podcastData[i].image);
           options.theTitle.text(options.podcastData[i].name)
           options.podcastData[i].seen = true
         }

         break
     }
 }

本文收集自互联网,转载请注明来源。

如有侵权,请联系[email protected] 删除。

编辑于
0

我来说两句

0条评论
登录后参与评论

相关文章

来自分类Dev

在FOR循环中仅运行一次IF

来自分类Dev

xslt:在for-each循环中仅循环一次

来自分类Dev

如何仅一次调用骨干视图事件?

来自分类Dev

从while循环中期待四次打印输出,仅获得一次

来自分类Dev

图像仅渲染一次,即使它是从应该返回 50 次的循环中返回的

来自分类Dev

for循环仅循环一次

来自分类Dev

Foreach循环仅循环一次

来自分类Dev

For循环功能仅循环一次

来自分类Dev

C“ for”循环仅循环一次

来自分类Dev

在for循环中打印多行,但仅一次打印第一个打印请求

来自分类Dev

使用 Corona SDK 在循环中一次仅选择一个矩形

来自分类Dev

for循环中的jQuery自定义事件仅在最后一次迭代时触发

来自分类Dev

每次调用一个函数时如何在循环中迭代一次?

来自分类Dev

Django在for循环中包含模板标记仅捕获第一次迭代

来自分类Dev

为什么在C / C ++的while循环中仅取消引用一次?

来自分类Dev

循环中的drawString仅写入一次,而不是多次写入

来自分类Dev

如何在for循环中仅回显重复的行一次?

来自分类Dev

jQuery-在嵌套的每个循环中仅迭代一次

来自分类Dev

为什么我的while循环中的“ if”条件仅被检查了一次?

来自分类Dev

在循环中仅声明一次变量的最快方法是什么?

来自分类Dev

我想使用python 3.4在for循环中仅打印一次特定行

来自分类Dev

在循环中仅显示一次消息框vb.net

来自分类Dev

如何在游戏循环中仅检测一次碰撞而不是连续检测?

来自分类Dev

C#调用后删除事件处理程序或仅调用一次

来自分类Dev

点击事件仅运行一次

来自分类Dev

__doPostBack on事件仅工作一次

来自分类Dev

“ onclick”事件仅触发一次

来自分类Dev

__doPostBack on事件仅工作一次

来自分类Dev

Javascript onClick事件仅一次?

Related 相关文章

  1. 1

    在FOR循环中仅运行一次IF

  2. 2

    xslt:在for-each循环中仅循环一次

  3. 3

    如何仅一次调用骨干视图事件?

  4. 4

    从while循环中期待四次打印输出,仅获得一次

  5. 5

    图像仅渲染一次,即使它是从应该返回 50 次的循环中返回的

  6. 6

    for循环仅循环一次

  7. 7

    Foreach循环仅循环一次

  8. 8

    For循环功能仅循环一次

  9. 9

    C“ for”循环仅循环一次

  10. 10

    在for循环中打印多行,但仅一次打印第一个打印请求

  11. 11

    使用 Corona SDK 在循环中一次仅选择一个矩形

  12. 12

    for循环中的jQuery自定义事件仅在最后一次迭代时触发

  13. 13

    每次调用一个函数时如何在循环中迭代一次?

  14. 14

    Django在for循环中包含模板标记仅捕获第一次迭代

  15. 15

    为什么在C / C ++的while循环中仅取消引用一次?

  16. 16

    循环中的drawString仅写入一次,而不是多次写入

  17. 17

    如何在for循环中仅回显重复的行一次?

  18. 18

    jQuery-在嵌套的每个循环中仅迭代一次

  19. 19

    为什么我的while循环中的“ if”条件仅被检查了一次?

  20. 20

    在循环中仅声明一次变量的最快方法是什么?

  21. 21

    我想使用python 3.4在for循环中仅打印一次特定行

  22. 22

    在循环中仅显示一次消息框vb.net

  23. 23

    如何在游戏循环中仅检测一次碰撞而不是连续检测?

  24. 24

    C#调用后删除事件处理程序或仅调用一次

  25. 25

    点击事件仅运行一次

  26. 26

    __doPostBack on事件仅工作一次

  27. 27

    “ onclick”事件仅触发一次

  28. 28

    __doPostBack on事件仅工作一次

  29. 29

    Javascript onClick事件仅一次?

热门标签

归档