【问题标题】:How to prevent back button from firing on .click()?如何防止后退按钮在.click()上触发?
【发布时间】:2016-07-01 23:54:50
【问题描述】:

我有一个简单的 JavaScript 代码,它可以在用户点击时将视频缩略图替换为隐藏在其后面的嵌入视频:

(function($){
    $(document).ready( function(){
         $(".video-image").click(function(){
         $(".video-embed").css({"opacity":"1","display":"block"});
         $(".video-embed")[0].src += "&autoplay="+autoplay;
         $(this).unbind("click");
        });
    } );
})(jQuery)

我在同一页面上还有一个表单,提交后,它会将用户带到感谢页面。如果主页上的视频在提交表单时暂停或仍在播放,然后用户选择从感谢页面点击后退按钮,则主页上的视频将重新开始播放。我相信这是因为 JavaScript 将后退按钮视为 .click 事件。

基本上,我想阻止后退按钮执行 JavaScript。有没有办法解决这个问题?

【问题讨论】:

  • 这不是强制自动播放为假的情况。然后,当有人在“.video-image”图像内单击时,您将视频带到前面并使用 javascript 启动它?
  • 这不是我在做的吗?我认为我的问题与 .click(function()... 当我点击后退按钮时触发有关。所以无论我的自动播放处于什么状态,它仍然会触发。

标签: javascript php jquery css click


【解决方案1】:

我发现更改帧源在技术上算作更改页面,有一次我制作的视频播放器只是更改了 iframe 的源,但每次更改源时,您都必须回击再次 - 所以如果你点击了 5 个视频,你必须回击 6 次才能到达上一页!

解决方案是生成和销毁框架,而不是切换源 - 对于您的事件,如下所示:

$("container .video-embed").remove();
$(container).append("<iframe class='video-embed' src='url here'></iframe">

【讨论】:

    猜你喜欢
    • 2011-07-04
    • 1970-01-01
    • 2014-02-11
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多