改进 HTML5 视频和 jQuery 代码以提高效率

Improving HTML5 video and jQuery code to be more efficient

我的网页上有 5 个视频。只有当您将鼠标悬停在视频上时,它才会开始播放。我的代码如下:

$(".service:nth-child(1) a").hover(function(){
    $('.service:nth-child(1) a video#bgvid').get(0).play();
},function(){
    $('.service:nth-child(1) a video#bgvid').get(0).pause();
});

我使用了 :nth-child,因为如果我将鼠标悬停在视频 4 上,它会播放视频 1,所以我必须具体说明。这意味着我必须为每个视频重复上述代码,但相应地更改 :nth-child 数字。我对 JS 不是特别熟练,但必须有更好、更有效的方法吗?

未经测试,但 this 应该可以帮助您入门。哈,双关语。 this。明白了吗?

$('.service a').hover(function(){
  $(this).children('video').get(0).play();
}, function(){
  $(this).children('video').get(0).pause();
});

另请参阅:

正如布拉德所说,使用 this 将允许您获取当前悬停的元素。 但是,afaik jQuery 不允许您通过他们的对象访问 HTML5 视频 API,因此您需要执行以下操作:

$('.service a video').hover(function(e){
  e.target.play();
}, function(e){
  e.target.pause();
});

当您将函数绑定到事件时,this 将始终是触发事件的对象。调用 $(this) returns 一个 jQuery 的对象