【发布时间】:2016-06-01 14:36:48
【问题描述】:
我们目前有一个带有 3 个自定义按钮来改变速度的视频播放器。这 3 个按钮是:
较慢(点击 1 次将使视频减慢 5%,最慢的是从 100% 减慢 80%)。
正常点击可将视频恢复到 100%。
较快与较慢相同,但速度较快,最大值为 120%。
这些按钮位于页面下方,但单击时会使页面重置到顶部。我已经尝试了e.preventDefault(); 并将每个功能设置为return false;,但似乎都没有停止重置?这个问题可能的错误或解决方案是什么?
function speedIncrease(e) {
e.preventDefault();
if (currentSpeed < 1.50) {
currentSpeed = currentSpeed + 0.05;
hapyak.playlist.get()._player.playbackRate(currentSpeed);
updateSpeed();
}
}
function speedDecrease(e) {
e.preventDefault();
if (currentSpeed > .8) {
currentSpeed = currentSpeed - 0.05;
hapyak.playlist.get()._player.playbackRate(currentSpeed);
updateSpeed();
}
}
function resetSpeed(e) {
e.preventDefault();
currentSpeed = 1;
hapyak.playlist.get()._player.playbackRate(currentSpeed);
updateSpeed();
}
此当前代码引发unidentified e 错误,即使我在函数的参数中识别它。
我也用return false;尝试过这个解决方案
function speedIncrease() {
if (currentSpeed < 1.50) {
currentSpeed = currentSpeed + 0.05;
hapyak.playlist.get()._player.playbackRate(currentSpeed);
updateSpeed();
}
return false;
}
function speedDecrease() {
if (currentSpeed > .8) {
currentSpeed = currentSpeed - 0.05;
hapyak.playlist.get()._player.playbackRate(currentSpeed);
updateSpeed();
}
return false;
}
function resetSpeed() {
currentSpeed = 1;
hapyak.playlist.get()._player.playbackRate(currentSpeed);
updateSpeed();
}
编辑:这是按钮的 HTML
<div class="video-speed-buttons-container">
<a href="#" onclick="speedDecrease()">
<div class="video-speed-button first">Play slower</div>
</a>
<a href="#" onclick="resetSpeed()">
<div class="video-speed-button">Normal speed</div>
</a>
<a href="#" onclick="speedIncrease()">
<div class="video-speed-button">Play faster</div>
</a>
</div>
感谢您对此提供的所有帮助!谢谢!
【问题讨论】:
-
你能显示 HTML 吗?这些按钮在任何表单内吗?
-
@SandeepNayak 更新了,它们不是形式,只是一个容器。
-
提供事件参数并调用函数
preventDefault()例如,e.preventDefault() -
为什么不删除
href?你可以使用css来获取你想要的指针。 -
@ChrisLear 这解决了它,如果你添加一个答案,我会接受它。谢谢!
标签: javascript jquery html preventdefault