通过复选框打开或关闭功能

时间:2018-02-23 07:35:32

标签: javascript jquery html checkbox

我的视频中有一个功能可以循环播放下一个视频,此功能可以通过复选框打开或关闭。我正在使用提醒来验证"play next"是否已选中复选框,并且未选中"dont play next"复选框。我希望选中复选框并默认播放(在页面加载时),并在此之后始终收听。

我现在遇到的问题是,当我收到"dont play next"提醒时,视频仍会播放下一个视频。

我的JavaScript

$(document).ready(function() {
  $(function() {
    chckplynext();
    $("#chkbox1").change(chckplynext);
  });

  function chckplynext() {
    if ($("#chkbox1").is(':checked')) {
      alert("play next");
      $("#myvid").on("ended", function() {
        window.location.href = "<?php echo'now-watching.php?nMe='.$usTitle1.'&nmov='.$usId1.'' ?>";
      });
    } else {
      alert(" Dont play next");
    }
  }
});

1 个答案:

答案 0 :(得分:1)

如果没有工作示例,很难确切知道您正在使用哪个框架或库。但是,看起来您多次绑定事件。

您可以从重构代码中受益

$(document).ready(function() {
    $("#myvid").on("ended", function() {
        if ($("#chkbox1").is(':checked')) {
            alert("play next");
            window.location.href = "<?php echo'now-watching.php?nMe='.$usTitle1.'&nmov='.$usId1.'' ?>";
        } else {
            alert(" Dont play next");
        }
    });
});

更改是我们将事件绑定一次,当视频结束时,它将始终触发。在这一点上,我们可以检查是否播放下一个视频。

通过将$("#myvid").off("ended")添加到else块中,您可以获得与原始结构类似的结果。