You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

动态加载视频缩略图hover无法播放,返回Promise pending问题排查

问题:动态加载的视频缩略图无法播放MP4

运营电影新闻网站,需每小时从JSON接口加载预览缩略图并更新至#movie-trailers元素,加载功能正常。需求为鼠标悬停缩略图时触发视频播放:初始DOM中的缩略图使用jQuery实现该功能无问题,但调用displayRelated()动态生成的缩略图无法播放MP4文件,执行console.log($('video',this).get(0).play())时返回Promise { <state>: "pending" }。

相关代码

$(document)
  .ready(function () {
    displayRelated();
    setInterval(displayRelated, 3600000);
  })
  .ajaxStop();
function displayRelated() {
  $.ajax({
    url: "/path/to/my/json",
    dataType: "json",
    async: false,
    cache: false,
    timeout: 5000,
    success: function (data) {
      var obj = jQuery.parseJSON(data);
      $.each(obj, function (index, value) {
        var element = jQuery.parseHTML(value);
        $("#movie-trailers").append(element);
      });
    },
  });
}
$(document).on("mouseenter", ".thumb", function () {
  $("video", this).get(0).play();
});
$(document).on("mouseleave", ".thumb", function () {
  var video = $("video", this).get(0);
  video.currentTime = 0;
});

错误的缩略图结构

<div class="thumb">
  <video muted loop preload="none">
    <source src="/path/to/video.mp4" type="application/x-mpegURL">
  </video>
</div>

问题根源与解决方案

排查发现问题根源:source标签的MIME类型错误,将其修正为以下格式即可解决:

<div class="thumb">
  <video muted loop preload="none">
    <source src="/path/to/video.mp4" type="video/mp4">
  </video>
</div>

内容的提问来源于stack exchange,提问作者Sevy

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.07.19 15:27:22