Javascript 单击可手动停止/跳过视频

Javascript 单击可手动停止/跳过视频,javascript,jquery,video,Javascript,Jquery,Video,当用户单击允许用户跳过视频的跳过按钮时,我试图结束视频 我一直在使用下面的方法,这很好,并且允许我在视频结束时触发一个动作 HTML 但是,我想做如下操作,但不确定如何实现 $('.skip').click(function(){ $('video').end(); }); jQuery中用于返回上一个选择器的方法 来自jQuery文档的描述: 结束当前链中最近的筛选操作,并将匹配元素集返回到其以前的状态 要停止视频,请获取dom对象,然后使用方法。尽管最后使用方法以编程方式触发结束

当用户单击允许用户跳过视频的
跳过按钮时,我试图
结束
视频

我一直在使用下面的方法,这很好,并且允许我在视频结束时触发一个动作

HTML

但是,我想做如下操作,但不确定如何实现

$('.skip').click(function(){
    $('video').end();
});
jQuery中用于返回上一个选择器的方法

来自jQuery文档的描述:

结束当前链中最近的筛选操作,并将匹配元素集返回到其以前的状态


要停止视频,请获取dom对象,然后使用方法。尽管最后使用方法以编程方式触发
结束
事件

jQuery中用于返回上一个选择器的方法

来自jQuery文档的描述:

结束当前链中最近的筛选操作,并将匹配元素集返回到其以前的状态


要停止视频,请获取dom对象,然后使用方法。尽管最后使用方法以编程方式触发
结束
事件


将视频移动到播放结束并不是一个简单的操作,因为您需要首先获得视频的长度,然后移动到该点

一个更简单的替代方法是提取在
end
下调用的逻辑,并在单击按钮时调用它。试试这个:

$('video').on('ended', function() {
   videoEnded();
})

$('.skip').click(function() {
    $('video')[0].pause();
    videoEnded();
});

function videoEnded() {
    // do stuff here
}

将视频移动到播放结束不是一个简单的操作,因为您需要先获得视频的长度,然后移动到该点

一个更简单的替代方法是提取在
end
下调用的逻辑,并在单击按钮时调用它。试试这个:

$('video').on('ended', function() {
   videoEnded();
})

$('.skip').click(function() {
    $('video')[0].pause();
    videoEnded();
});

function videoEnded() {
    // do stuff here
}

你能在jsfiddle.net中显示吗?在JS代码中,“end”是否有这样的事件?你能在jsfiddle.net中显示吗?在JS代码中,“end”是否有这样的事件?请注意,
pause()
不会引发
end
事件though@RoryMcCrossan有没有办法引发
end
事件?@phantom yes-
触发器('end'))
@Rorymcrossan所以这不意味着这个解决方案比你的更整洁,更易于实施吗?]顺便说一句,我很喜欢你的解决方案,但这只是其中之一line@RoryMcCrossan:使用触发器更新:)注意
pause()
不会引发
已结束的事件though@RoryMcCrossan有没有办法引发
end
事件?@phantom yep-
trigger('end')
@Rorymcrossan所以这并不意味着这个解决方案比你的更整洁,更容易实施?]顺便说一句,我真的很喜欢你的解决方案,但这只是其中之一line@RoryMcCrossan:使用触发器更新:)
$('.skip').click(function(){
    $('video').trigger('ended')[0].pause();
});
$('video').on('ended', function() {
   videoEnded();
})

$('.skip').click(function() {
    $('video')[0].pause();
    videoEnded();
});

function videoEnded() {
    // do stuff here
}
$('.skip').click(function(){
    $('video')[0].load();
    $('video')[0].pause();
});