Wie lösche ich die innere HTML
Ich habe schon hantieren mit diesem für eine Weile, aber es funktioniert nicht und ich kann nicht herausfinden, warum. Bitte helfen Sie. Hier ist, was ich habe:
<html>
<head>
<title>lala</title>
</head>
<body>
<h1 onmouseover="go('The dog is in its shed')" onmouseout="clear()">lalala</h1>
<div id="goy"></div>
<script type="text/javascript">
function go(what) {
document.getElementById("goy").innerHTML = what;
}
function clear() {
document.getElementById("goy").innerHTML = "";
}
</script>
</body>
</html>
Das mouseover funktioniert und zeigt den text in das div, aber wenn ich mich bewege die Maus aus dem h1-tag, der text bleibt drin und ich weiß nicht, warum, würde Hilfe geschätzt werden.
- Bitte siehe meine Antwort hier: stackoverflow.com/a/21975639/218196. In deinem Fall
clear
bezieht sich aufdocument.clear
: developer.mozilla.org/en-US/docs/Web/API/document.clear
Du musst angemeldet sein, um einen Kommentar abzugeben.
Das problem scheint zu sein, dass die globalen symbol
clear
ist bereits im Einsatz und Ihre Funktion nicht gelingt, überschreiben Sie es. Wenn Sie ändern Sie diesen Namen, um etwas anderes (ich habeblah
), funktioniert es Prima:Live: Version mit
clear
, welche fehlschlägt | Version mitbla
, die funktioniertDies ist eine großartige Darstellung des Grundprinzip: Vermeiden Sie Globale Variablen, wo immer möglich. Der Globale namespace in Browsern ist unglaublich überfüllt, und wenn Konflikte auftreten, erhalten Sie seltsame Fehler wie diese.
Eine Folge, die ist nicht für die Verwendung der alten Stil
onxyz=...
Attribute, um hook up event-Handler, weil Sie erfordern, globals. Stattdessen, zumindest das code verwenden, um Haken, die Dinge bis: Live-Kopie...und noch besser, verwenden Sie DOM2 ist
addEventListener
(oderattachEvent
auf IE8 und früher), so können Sie mehrere Handler für ein Ereignis auf ein element.Den h1-tags leider nicht erhalten, die onmouseout-events.
Einfachen Javascript-snippet unten, wird die Arbeit für alle Elemente und verwendet nur 1 Maus-Ereignis.
Hinweis: "Die Grenzen im snippet angewendet werden, um eine visuelle Abgrenzung der Elemente."
JS:
HTML:
Dies kann auch durchgeführt werden in reinem CSS, indem die hover-Selektor css-Eigenschaft, um das h1-tag.
Werfen Sie einen Blick auf diese. eine saubere und einfache Lösung mit jQuery.
http://jsfiddle.net/ma2Yd/
jQuery
tag überall. Aus derjavascript
tag Beschreibung: "es sei denn, ein tag für ein framework/Bibliothek ist auch vorhanden und eine Reine JavaScript-Antwort erwartet wird."