您好我的函数setUpTranslation()遇到了问题。 //此函数的目的是将法语短语放入文档中,并为mousedown和mouseup事件设置事件处理程序。
//这些是我在文档中放置的法语短语和英语短语的数组:
var english = new Array();
english[0] = "This hotel isn't far from the Eiffel Tower.";
english[1] = "What time does the train arrive?";
english[2] = "We have been waiting for the bus for one half-hour.";
english[3] = "This meal is delicious";
english[4] = "What day is she going to arrive?";
english[5] = "We have eleven minutes before the train leaves!";
english[6] = "Living in a foreign country is a good experience.";
english[7] = "Excuse me! I'm late!";
english[8] = "Is this taxi free?";
english[9] = "Be careful when you go down the steps.";
var french = new Array();
french[0] = "Cet hôtel n'est pas loin de la Tour Eiffel.";
french[1] = "A quelle heure arrive le train?";
french[2] = "Nous attendons l'autobus depuis une demi-heure.";
french[3] = "Ce repas est délicieux";
french[4] = "Quel jour va-t-elle arriver?";
french[5] = "Nous avons onze minutes avant le départ du train!";
french[6] = "Habiter dans un pays étranger est une bonne expérience.";
french[7] = "Excusez-moi! Je suis en retard!";
french[8] = "Est-ce que ce taxi est libre?";
french[9] = "Faites attention quand vous descendez l'escalier.";
//功能我遇到了
的问题function setUpTranslation(){
var phrases = document.getElementByTagName("p");
for (i =0; i<phrases.length; i++){
phrases[i].number =i;
phrases[i].childNodes[1].innerHTML =french[i];
phrases[i].childNodes[1].onmousedown =function(){
swapFE(event);
phrases[i].childNodes[1].onmouseup =function(){
swapEF(event);
};
};
}
//以下是另外两个函数swapFE()和swapEF()。函数swapFE()的目的是为英语翻译交换法语短语 //函数swapEF()的目的是为法语短语交换英语翻译。
function swapFE(e){
var phrase =e.srcElement;
var parent =phrase.parentNode;
var idnum =parent.childNodes[0];
var phrasenum =parseInt(idnum.innerHTML)-1;
phrase.innerText =english[phrasenum];
}
function swapEF(e){
var phrase =e.srcElement;
var parent =phrase.parentNode;
var idnum =parent.childNodes[0];
var phrasenum =parseInt(idnum.innerHTML)-1;
phrase.innerText =french[phrasenum];
}
//不确定这些是否正确。提前谢谢!
答案 0 :(得分:1)
假设您的HTML看起来像这样
<p><span>1</span><span></span></p>
<p><span>2</span><span></span></p>
...
<p><span>10</span><span></span></p>
然后您需要做的就是在swapFE(event);
之后添加花括号(为Plunkett先生指点)并将getElementByTagName
替换为getElementsByTagName
(您错过了's'有)。
另外需要注意的一点是:如果英语短语比法语短,那么当onmousedown
事件触发时容器可能会缩小。如果此收缩导致鼠标光标位于容器外部,则不会触发后续onmouseup
事件。当然,如果您使用的是块元素(例如<div>
)而不是我假设的<span>
,那么这可能不是问题。无论如何,最好将事件监听器附加到<p>
标签上。