Kann mir jemand sagen, was ich falsch mache? Ich habe einen ganzen Tag mit der Fehlerbehebung verbracht, aber ich komme nirgendwohin ... Ich möchte das Ereignis "onmouseover" zu meinen span-Elementen hinzufügen. Wenn ich jedoch den folgenden Code implementiere, passiert nichts. Ich habe ein wenig gegoogelt und ich denke, dass es ein Problem mit einem variablen Bereich sein könnte. Ich bin nicht zu sicher ... Jede Hilfe ist willkommen!Probleme beim Hinzufügen eines Ereignisses "onmouseover" zu einer Spanne
<!DOCTYPE html>
<html>
<head>
<title>Fixing bugs in JS</title>
<script src="question1.js" type="text/javascript"></script>
<head>
<body>
<div id="output"></div>
</body>
<html>
var NUMBERS = 100;
function go()
{
var out = document.getElementById("output");
for (var i = 1; i < NUMBERS+1; i++) {
var span_one = document.createElement("span");
span_one.id = "span" + i;
span_one.innerHTML = "" + i;
out.appendChild(span_one);
if (isPrime(i) === true) { // where i is a prime number (3, 5, 7..etc)
span_one.style.backgroundColor = "red";
span_one.onmouseover = function() {
hover("span"+i, "yellow", "150%")
};
span_one.onmouseout = function() {
hover("span"+i, "red", "100%") // whatever color in this line always overrides previous set color...
};
}
function hover(id, color, size) {
var span = document.getElementById(id);
span.style.backgroundColor = color;
span.style.fontSize = size;
}
function etc() {
...
}
window.onload=go;
Das Problem, das ist, wenn sie aufgerufen, 'I' nicht mehr hält, was es zu halten braucht. (Der Wert von i innerhalb von onmouseover ist nicht das gleiche wie wenn es als Parameter zu isPrime verwendet wurde) – enhzflep
@enhzflep Ich überprüft über console.log (span_one.id) und es hält den Wert, den es annehmen soll ... – aeml
Das ist nicht dasselbe. 'span_one.id' _should_ muss denselben Wert wie' i' haben, tut es aber nicht. – enhzflep