切换按钮,但只能切换一次

时间:2016-07-26 15:37:11

标签: javascript jquery toggle

我有一个很好的音频播放按钮代码。点击后它变成一个暂停按钮。没关系,但我想保留一个暂停按钮。所以它应该只切换一次。很高兴添加一些代码,而不是用全新的代码替换。代码:

<script>
function a(el){
play()
}

function b(el){
pause()
}

$(".btn-play").click(function() {
  var el = this;
  return (el.t = !el.t) ? a(el) : b(el);
 }); 
</script> 

3 个答案:

答案 0 :(得分:1)

假设el.t == false表示b(),只需添加预检:

$(".btn-play").click(function() {
  var el = this;
  if (!el.t) b(el);
  return (el.t = !el.t) ? a(el) : b(el);
}); 

如果你的意思是另一个,那就用if (el.t) b(el);

就个人而言,我简化了代码:

$(".btn-play").click(function() {
  var el = this;
  if (!el.t) b(el);
  el.t = false;
  a(el);
}); 

答案 1 :(得分:0)

这个怎么样:https://jsfiddle.net/e0evwnvu/

$(document).ready(function() {
  var isPauseButton = false;
  $('#btn').click(function() {
    if (!isPauseButton) {
        play();
      isPauseButton = true;
    } else {
        pause();
    }
  });
});

function play() {
    alert('play');
}

function pause() {
    alert('pause');
}

答案 2 :(得分:0)

对于&#34;这是一个相当普遍的答案;我只想使用按钮一次&#34;,因为问题中没有详细说明。

您可以使用$('.btn-play').attr("disabled", true)$(".btn-play").unbind("click")停用该按钮 - 只需确保此选项仅选择您想要的按钮。

如果您希望按钮具有不同的功能(暂停而不是播放或其他),我建议您单独定义处理程序,以便您可以使用.unbind("click", handler1)后跟.bind("click", handler2)或以其他方式保留两个处理程序分开,as per documentation here