2017-05-14 58 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>