Ich muss eine Funktion aufrufen, um französische Sätze ins Englische zu übersetzen, und ich stecke auf der showEnglish()
fest. Es wird nicht die english
Arrays ziehen. Und ich bin mir nicht einmal sicher, ob ich die Setup-Funktion richtig referenziere, die ich in einer separaten JavaScript-Datei hatte.Stuck mit einer JavaScript-Funktion?
Hier ist, was ich bisher:
window.onload = setup;
function setup() {
var questions = document.querySelectorAll("article ol li");
for (var i = 0; i < questions.length; i++){
questions[i].id = i + "phrase";
questions[i].onmousedown = showEnglish;
//questions[i].onmouseup = showFrench;
questions[i].style.cursor = "pointer";
}
}
function showEnglish() {
var phrases = document.getElementById("phrase");
var phraseNumber = parseInt(phrases.id);
phraseNumber.innerHTML = english[phraseNumber];
phraseNumber.style.fontStyle = "italic";
phraseNumber.style.fontColor = "rgb(191, 22, 31)";
}
'phraseNumber' enthält einen numerischen Wert, nachdem Sie das Ergebnis von' parseInt() 'zugewiesen haben. Warum behandeln Sie es später wie ein DOM-Element, indem Sie Eigenschaften wie "innerHTML", "style" usw. setzen? Das wird nicht so funktionieren, wie du es erwartest. – RJM
Ich denke, das ist, wo ich verwirrt bin. Vielen Dank! Ich werde zurückgehen und es korrigieren! – aisem19
'MouseDown'-Ereignis wird als Parameter der' showEnglish' -Funktion übergeben, wenn es aufgerufen wird. Sie müssen 'event.srcElement' (oder' event.target' in Firefox) verwenden, um das Element abzurufen, das das Ereignis und seine ID ausgelöst hat. Aber kann dies vereinfachen und die Verwendung von IDs vermeiden. Siehe meine Antwort unten. –