私は、複数のインスタンスを持つクイックオーディオプレーヤーを作った。クリックすると、を再生するがtrueに設定されます。 .playAudioの別のインスタンスをクリックすると、lastPlayedインスタンスをfalseに設定しようとしています。どのようにしてターゲット変数を変更できますか?
私は分からない部分をコメントしています。
のjQuery:
var lastPlay
var lastSelected
$('.playAudio').each(function(){
var audio = $(this).find('audio').get(0);
var playing = false
$(this).hover(function() {
if (playing) {
$(this).css({backgroundPosition: '-60px -60px'})
} else {
$(this).css({backgroundPosition: '0px -60px'})
}
},function() {
if (playing) {
$(this).css({backgroundPosition: '-60px 0'})
} else {
$(this).css({backgroundPosition: ''})
}
});
$(this).click(function(){
if (playing) {
playing = false
$(this).css({backgroundPosition: '0 60px'})
audio.currentTime = 0
audio.pause()
} else {
if (lastPlay) {
//** I'm trying to change the lastSelected's "playing" to false
lastPlay.pause()
}
playing = true
$(this).css({backgroundPosition: '-60px -60px'})
audio.play()
lastPlay = audio
lastSelected = $(this)
}
})
})
(あなたの問題は何もありません):JSはPHPではなく、変数は '$'で始める必要はありません。それはちょっと醜い;) –
私は完全に同意する...私は私の問題にいくつかの他の解決策を誤解したので、それを変更しました。ハハ。 ** fixed ** – Tom
@ldiqual:そうですが、 '$'で変数を開始することは、この変数にDOM要素ではなくjQueryオブジェクトが含まれていることを強調するためによく使われます。これは実際にはここでは当てはまりませんでした。したがって、さらに混乱します。 –