【问题标题】:Disable bootstrap buttons until after youtube video plays禁用引导按钮,直到 youtube 视频播放后
【发布时间】:2017-07-11 07:22:32
【问题描述】:

这是为一个表单设置的,所以我需要用户在视频结束之前不能点击按钮。

我正在使用 Youtube Video API 播放视频,视频下方有两个按钮,我希望在视频播放完毕之前保持禁用状态。问题是,无论添加属性,甚至通过 jquery 支持来保持它们被禁用。该按钮仍在触发点击事件。

我也尝试将禁用的类添加到锚点,但随后发生的情况是按钮保持禁用状态并且即使在视频完成并且通过代码调用活动类后也无法设置为活动状态。

我的视频播放代码:

<!--YOUTUBE VIDEO SCRIPT-->
    <script src="http://www.youtube.com/player_api"></script>
    <script type="text/javascript">
        // create youtube player
        var player;

        function onYouTubePlayerAPIReady() {
            player = new YT.Player( 'player', {
                height: '315',
                width: '560',
                videoId: 'i1XKt2T8ejc',
                events: {

                    onStateChange: onPlayerStateChange
                }
            } );
        }

        // when video ends
        function onPlayerStateChange( event ) {
            if ( event.data === 0 ) {
                /*Accept and Decline buttons are selectable once video plays entirely*/
                $( 'a.yes' ).attr( 'disabled', false);
                $( 'a.no' ).attr( 'disabled', false);
            }

        }
    </script>

其他代码:

<script type="text/javascript">
 $( 'a.yes' ).attr( 'disabled', true);
 $( 'a.no' ).attr( 'disabled', true);
</script>

按钮:

<a href="exit.php" role="button" class="btn btn-danger no" style="float:right; width:100px;" >Decline</a>

<a href="yes.php" role="button" class="btn btn-success yes"  style="float:right; width:100px;">Accept</a>

【问题讨论】:

  • 几个问题: 1. 您是否验证过“onPlayerStateChange”函数实际上被调用了? 2. 您提到按钮仍在触发事件,但它们在视觉上是否显示为禁用?
  • @ChrisCousins 是的,该函数被调用并且按钮在视觉上似乎被禁用。不过,以下答案已解决,谢谢。

标签: javascript jquery twitter-bootstrap youtube-api


【解决方案1】:

您的代码应该可以工作,但是您不能禁用a 元素;将其更改为按钮。

<button href="exit.php" role="button" class="btn btn-danger no" style="float:right; width:100px;" >Decline</abutton>

<button href="yes.php" role="button" class="btn btn-success yes"  style="float:right; width:100px;">Accept</button>

对于 jQuery 来说

$( 'button.yes' ).attr( 'disabled', true);
$( 'button.no' ).attr( 'disabled', true);

【讨论】:

  • 谢谢!解决了,总是很简单哈哈
  • @user3015009 完全。我也花了一段时间才注意到它;)
猜你喜欢
  • 2020-04-12
  • 2017-07-19
  • 2022-01-27
  • 2014-08-30
  • 2012-07-09
  • 2015-11-17
  • 2011-06-04
  • 2021-11-03
  • 2011-12-30
相关资源
最近更新 更多