2016-07-26 6 views
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'); 
} 
+1

HTMLとCSSを入力してください。 – Josh

+2

'el.t =!el.t'は代入であり、常にtrueを返します。 – Pascamel

+0

@Pascamelいいえ - 常に代入の結果であり、必ずしも真ではありません。 'var x = true; alert((x =!x)? "true": "false") var x = false; alert((x =!x)? "true": "false") ' –

答えて

0

これは、「ボタンを1回だけ使用したい」という質問にはあまり詳しくは書かれていないため、かなり一般的な回答です。

$('.btn-play').attr("disabled", true)または$(".btn-play").unbind("click")でボタンを無効にすることができます。ボタンで目的のボタンだけを選択するようにしてください。

したい場合はボタンを、あなたは.unbind("click", handler1).bind("click", handler2)続いや他のいくつかの方法で、2件のハンドラが分離しておく、as per documentation hereを使用することができますので、私は、個別のハンドラを定義することをお勧め(代わりに、遊びか何かの一時停止)異なる機能を持っています。

0

どう

$(".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);

個人的には、 ode:

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

は、単に事前チェックを追加し、el.t == falseb()を意味と仮定すると::このことについて

<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> 
関連する問題