2011-02-24 8 views
0

안녕하세요, 나는 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

정확히 무엇입니까? – romaintaz

+1

조금 혼란스러운 question.it는 문제와 요구 사항을보다 명확하게 만들면 아주 좋습니다. 예를 들어 기존 코드에 문제가 있다면 그 문제는 무엇입니까 등 –

+2

"La plume de ma tante est sur la table" "내 호버 크래프트는 뱀장어로 가득하다."는 의미입니다. HTH. –

답변

1

<p><span>1</span><span></span></p> 
<p><span>2</span><span></span></p> 
... 
<p><span>10</span><span></span></p> 

그런 다음 당신이해야 할 모든 swapFE(event); (미스터 플 런켓에 대한 포인트) 이후에 중괄호를 추가하고 getElementsByTagNamegetElementByTagName를 대체하는 것입니다 (같은 당신이 '는 누락하고 당신의 HTML 보이는 것을 가정 거기에 s ').

참고 사항 : 영어 구가 프랑스어보다 짧은 경우 onmousedown 이벤트가 발생하면 컨테이너가 축소 될 수 있습니다. 이 축소로 인해 마우스 커서가 컨테이너 바깥에 위치하게되면 이후의 onmouseup 이벤트는 트리거되지 않습니다. 물론 내 생각에 <span> 대신 블록 요소 (예 : <div>)를 사용하는 경우에는 문제가되지 않습니다. 어쨌든 이벤트 리스너를 <p> 태그에 연결하는 것이 좋습니다.

+0

마침내 효과가있었습니다. 도움을 주신 Plunkett 씨께 감사드립니다. – Suzie

관련 문제