2017-05-14 93 views
0

我想單擊數組中包含文本和聲音的單詞。單擊包含聲音的單詞 - javascript

我從這個鏈接的代碼:Detect which word has been clicked on within a text,但我不知道如何想出一個辦法在這個詞來點擊和使用jquery聽其聲音

<script> 
var wordaudio = []; 
wordaudio["Lorem"] = "lorem.mp3"; 
wordaudio["ipsum"] = "ipsum.mp3"; 
wordaudio["dolor"] = "dolor.mp3"; 

$("body").click(function(){ 
    var s = window.getSelection(); 
    s.modify('extend','backward','word');   
    var b = s.toString(); 

    s.modify('extend','forward','word'); 
    var a = s.toString(); 
    s.modify('move','forward','character'); 
    // alert(b+a); 
    document.getElementById('myAudio').src='0001.mp3'; 
    document.getElementById('myAudio').play(); 


}); 
</script> 

<p>Lorem ipsum dolor sit amet.</p> 
<audio id="myAudio" src=""></audio> 
+0

會增加周圍的話跨度是一種選擇? – Teemoh

+0

我知道javascript,但我從來沒有用過jQuery,這對我來說很奇怪,我不知道該怎麼做。我有很多音頻文件來學習一種新的語言,我想我會嘗試在純JavaScript中做到這一點。該腳本運行良好,無需使用跨度,您需要啓用警報功能才能看到。我今天簽了字只是爲了要求。我是新成員! –

回答

0

我修改劇本以純粹的JavaScript,不幸的是我不知道在這個例子中使用 數組,我想我需要重新命名我的所有音頻文件......只有字馬在這個例子中的作品。

function hearWords() { 
 
var s = window.getSelection(); 
 
    s.modify('extend','backward','word');   
 
var b = s.toString(); 
 
    s.modify('extend','forward','word'); 
 
var a = s.toString(); 
 
    s.modify('move','forward','character'); 
 
var audio = b+a.trim()+'.mp3'; \t 
 
    document.getElementById('myAudio').src='https://www.w3schools.com/jsref/'+audio; 
 
    document.getElementById('myAudio').play(); 
 
    alert(audio); 
 
\t }
<p id="words" onclick="hearWords();">no sound horse </p> 
 
<audio id="myAudio" src=""></audio>