jQuery视频悬停优化动态选择器
jQuery video hover optimising dynamic selectors
我正在研究用户悬停在视频上触发它播放的东西。当他们将鼠标悬停在另一个视频上时,这个新视频开始播放,并停止其他视频。
我正在使用Vimeo和他们的Froogaloop库(这里不太相关,也可以是视频标签,主要关注选择器的缓存)。
这段代码工作得很好,但我知道它没有像它应该的那样优化,它每次调用悬停函数时都使用多个选择器,这是我不想做的。我可以改进这段代码,使它不这样做吗?或者在现代浏览器中继续像这样调用jQuery选择器是可以的吗?
这是一个简化的工作演示
function hoverVid() {
var frame = $(this).find('iframe');
var player = $f(frame[0]);
player.api('play');
var vids = $('.vid-row iframe').not(frame);
vids.each(function(index) {
var frame = $(this);
var player = $f(frame[0]);
player.api('pause');
});
}
$('.vid-row').hover(hoverVid);
欢呼:]
我稍微改进了一下-根据@GerardCuadras的评论,通过暂停所有视频,然后播放所需的视频,删除了使用。not()过滤器的需要。
这允许我缓存iframe列表。我还优化了选择器,使用#id和.find()。
JSBin
var vidz = $('#vidz').find('iframe');
function hoverVid(e){
vidz.each(function( index ){
var frame = $(this);
var player = $f(frame[0]);
player.api('pause');
});
var frame = $(this).find('iframe');
var player = $f(frame[0]);
player.api('play');
}
$('.vid-row').hover(hoverVid);
相关文章:
- 在动态创建的元素上获取对特定选择器的引用
- 使用CSS或js,使用动态选择器选择任意li的下一个元素
- 如何动态创建许多Jquery颜色选择器(eyecon)
- 动态修改一个元素,使其与给定的选择器匹配
- 动态填充Bootstrap选择选择器:change event dos'不起作用
- 动态添加的标记不会'无法正确使用日期选择器
- jQuery选择器不识别任何动态创建的HTML输入函数
- 如何在jQuery的.on()方法中动态更新按钮的ID选择器
- 如何在创建动态 HTML 页面时使用日期选择器
- Jquery - 创建动态名称选择器
- 带过滤器的jQuery动态选择器
- 动态选择器,用于点击事件在 2 个事件后行为异常
- 执行函数时添加的动态选择器
- JQuery动态选择器事件处理程序
- 不能使jQuery动态选择器工作
- Lightbox未加载动态选择器
- Jquery动态选择器错误
- 试图将类添加到动态选择器
- 在php foreach中使用jquery动态选择器删除单个图像
- jQuery视频悬停优化动态选择器