この jquery コードと html は、英語の語学トレーニング サイトで問題なく動作します。
$(document).ready(function() {
$("p").hover(
function() {
$(this).css({"color": "purple", "font-weight" : "bolder"});
},
function() {
$(this).css({"color": "black", "font-weight" : ""});
}
);
$("p").click(function (event) {
var element = $(this);
var elementID = event.target.id;
var oggVar = (elementID +".ogg");
var audioElement = document.createElement('audio');
audioElement.setAttribute('src', oggVar);
audioElement.load();
audioElement.addEventListener("load", function() {
audioElement.play();
}, true);
audioElement.play();
});
});
<div>
<p id="one"> this is the first paragraph</p>
....
<p id="four"> this is the fourth paragraph</p>
....
</div>
問題は、オーディオ ファイルの再生中にテキストをクリック (またはダブルクリック) すると、2 番目のファイル (または同じファイル) の再生が開始されることです。そのため、2 つのファイルを同時に再生することになります。これを防ぐ必要があります。「終了」イベントは関連していると思いますが、いくつかの例を見ても、ファイルが再生されているかどうかを検出し、終了するまで待ってから 2 番目のファイルを開始する (または再生を防止する) 方法がよくわかりません。まったく)。どんな助けでも大歓迎です:)