如何在js中创建2个按钮播放,暂停

Posted

技术标签:

【中文标题】如何在js中创建2个按钮播放,暂停【英文标题】:How to create 2 buttons Play , pause in js 【发布时间】:2021-10-20 21:55:31 【问题描述】:

我在卡片中有 2 个按钮,如下所示。

<div class = "card">
   <button class ="play"> Play </button>
   <button class ="pause"> PAuse </button>
</div>

当我按下PLay 按钮时,Pause 应该被启用。 Play 按钮应该被禁用。

按下Play后,如果我按下Pause按钮,Play按钮应该是EnabledPause按钮应该是disabled

一件事,我们不能直接按Pause按钮,而不按Play按钮。

如何编写代码以在 JS 中显示条件 PlayPause

有人可以帮忙吗?

谢谢

【问题讨论】:

【参考方案1】:

嗯,这里是原版 javascript 版本。

html

<div class = "card">
   <button class ="play"> Play </button>
   <button class ="pause"> Pause </button>
</div>

Javascript:

const playButton = document.querySelector('.play');
const pauseButton = document.querySelector('.pause');

// By default make pause button disabled
pauseButton.disabled = true;


playButton.addEventListener('click', () => 
  pauseButton.disabled = false;
  playButton.disabled = true;
);


pauseButton.addEventListener('click', () => 
  playButton.disabled = false;
  pauseButton.disabled = true;
);

这会起作用。

这里是codepen

【讨论】:

【参考方案2】:

默认为.pause 按钮设置disabled="true" 并继续为两个按钮设置click 事件

$(".play").on("click", function()
  $(this).prop("disabled", true );
  $(".pause").prop("disabled", false );
)

$(".pause").on("click", function()
  $(this).prop("disabled", true );
  $(".play").prop("disabled", false );
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "card">
   <button class ="play"> Play </button>
   <button class ="pause" disabled="true"> PAuse </button>
</div>

如果您无法控制 DOM 并且无法为 .pause 添加 disabled="true",则可以在定义事件之前使用 $(".pause").prop("disabled", true )

$(".pause").prop("disabled", true );

$(".play").on("click", function()
  $(this).prop("disabled", true );
  $(".pause").prop("disabled", false );
)

$(".pause").on("click", function()
  $(this).prop("disabled", true );
  $(".play").prop("disabled", false );
)
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class = "card">
   <button class ="play"> Play </button>
   <button class ="pause"> PAuse </button>
</div>

【讨论】:

【参考方案3】:

考虑以下内容。

$(function() 
  $(".btn").click(function(e) 
    if ($(this).hasClass("play")) 
      $(this).toggleClass("play pause").html("&#9208; Pause");
      // Trigger Play event
     else 
      $(this).toggleClass("play pause").html("&#9205; Play");
      // Trigger Pause Event
    
  );
);
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<div class="card">
  <button class="btn play">&#9205; Play</button>
</div>

这会保留一个按钮,但会根据需要更改按钮的类和内容。

符号参考:http://www.scrollseek.com/wd/html_symbols_complete.html

【讨论】:

以上是关于如何在js中创建2个按钮播放,暂停的主要内容,如果未能解决你的问题,请参考以下文章

如何在 spotify 应用程序 API 中创建播放列表并获取其 URI?

如何访问 Siri Remote 播放/暂停按钮和覆盖菜单按钮

如何在其他视图中使用 Swift 中的 AVPlayer 暂停和播放音乐

播放和暂停按钮正在工作...但是如何重置按钮以在音频结束后显示播放符号?

用js控制video的src

如何在输入文本区域中创建 Enter 事件以使用 Vue.js 和 Electron 按下按钮