javascript - 加载动态内容时,Html5 视频播放停止工作
问题描述
我有一个带有视频产品的 WordPress 网站,此代码添加了一个功能,以便当鼠标悬停在视频缩略图上时它开始播放,当鼠标离开视频时它暂停。它在初始页面加载时工作得很好,但通过 ajax 加载的其他内容什么也不做。
我是 Javascript 新手,但我明白为什么当通过 ajax 加载其他内容时我的代码停止工作。我只是不知道如何使它工作。:) 我已经搜索了答案并遇到了一些关于使用“开启”状态的信息,但无法弄清楚如何在我的代码中使用它。
$(document).ready(function() {
var figure = $(".video").hover( hoverVideo, hideVideo );
function hoverVideo(e) {
$('video', this).get(0).play();
}
function hideVideo(e) {
$('video', this).get(0).pause();
}
});
我知道它不起作用,因为新内容还没有“准备好”,或者脚本不知道新内容,因为页面没有加载。那么......我如何使用动态内容进行这项工作?提前致谢!
解决方案
我能够弄清楚。
$(document).on({
mouseenter: function () {
$('video', this).get(0).play();
},
mouseleave: function () {
$('video', this).get(0).pause();
}
}, '.video');
使用$(document).on而不是$(document).ready允许它适用于任何以前或将来加载的要修改的“.video”类。
使用mouseenter和mouseleave事件而不是 .hover
推荐阅读
- typescript - 无法将 Typescript 数组重构为 JSON 对象?
- python - 使用递归函数检查矩阵重复元素
- c# - 为什么我的函数将 10 作为参数传递?
- javascript - 我正在制作计算器,当我在输入中添加数字 1+1 时,我得到答案 1。为什么
- elasticsearch - 尝试运行 kibana (elasticsearch) 版本 7.9.3
- c++ - c ++程序将数字提高到幂给出错误('for'之前的预期不合格ID)
- java - 尽管捕获了所有与 Toast 相关的错误,但在 Android 7 上的 ViewRootImpl.java 行 XXX 中崩溃
- android - 使用 TextEditingController() 按下 Enter 后,TextFormField 的值会重置
- reactjs - JSSX 中的 SVG:启用背景
- javascript - 如何在不使用 getelementbyid 的情况下显示 HTML 表格?