Как исправить вызов onmouseout при наведении курсора на дочерние элементы?

У меня есть div, к которому я добавляю другой div, когда вызывается onmouseover. Проблема в том, что когда я пытаюсь навести курсор на дочерний div, он вызывает onmouseout и закрывает div. Как мне исправить это, чтобы он не закрывал div? Не используя JQuery.

Это мои коды:

function ShowSong(i) {
        var wordsdiv = document.getElementById("words" + i);
        var songdiv = document.getElementById("song1");
        switch (i) {
            case 1:
                if (wordsdiv == null) {
                    var words = "שב ילדי שב אל תלך עכשיו<br />" +
                                "תן לנשום אותך עוד רגע עוד קצת.<br />" +
                                "שב ילדי שב כי עכשיו נחמד.<br />" +
                                "יש שקט ואני איתך לבד.<br /><br />" +
                                "וכשתלך, תזכור תמיד<br />" +
                                "לשמור על עצמך,<br />" +
                                "מאנשים קשים<br />" +
                                "אשר עומדים במסלולך.<br />" +
                                "אל תפחד, מעל ראשך יש מלאכים<br />" +
                                "ואתה תמיד תהיה..<br /><br />" +
                                "גיבור של אימא<br />" +
                                "אתה תמיד תהיה לי מלך העולם,<br />" +
                                "תמיד עם החיוך הכי מושלם,<br />" +
                                "כמו בתמונות בזיכרונות<br />" +
                                "לכל מקום שלא תלך, תהיה של אימא…<br /><br />" +
                                "לך ילדי, לך, תיזהר מעט.<br />" +
                                "קח את בירכתי, את תפילתי, איתך.<br />" +
                                "אל תשכח בני, אימא כאן בשבילך,<br />" +
                                "אז לך תגשים את כל חלומותיך.<br /><br />" +
                                "וכשתלך, תזכור תמיד<br />" +
                                "לשמור על עצמך,<br />" +
                                "מאנשים קשים<br />" +
                                "אשר עומדים במסלולך.<br />" +
                                "אל תפחד, מעל ראשך יש מלאכים<br />" +
                                "ואתה תמיד תהיה..<br />";
                    songdiv.innerHTML += "<div id='words1' class='wordsbg' onmouseover='ShowSong(1);'><p class='words'>" + words + "</p></div>";
                }
                break;
            case 2:
                var wordsdiv = document.getElementById("words2");
                if (wordsdiv == null) {
                    var songdiv = document.getElementById("song2");
                    var words = "";
                    songdiv.innerHTML += "<div id='words2' class='wordsbg' onmouseover='ShowSong(2);'><p class='words'>" + words + "</p></div>";
                }
                break;
        }
    }

    function DeleteSong(i) {
        switch (i) {
            case 1:
                var wordsdiv = document.getElementById("words1");
                if (wordsdiv != null)
                    wordsdiv.parentNode.removeChild(wordsdiv);
                break;
            case 2:
                var wordsdiv = document.getElementById("words2");
                if (wordsdiv != null)
                    wordsdiv.parentNode.removeChild(wordsdiv);
                break;
        }
    }
</script>

<div id="song1" class="song" onmouseover="ShowSong(1);" onmouseout="DeleteSong(1);">
<p class="title" onmouseover="ShowSong(1);">גיבור של אמא<br />
<small class="writer" onmouseover="ShowSong(1);">משה פרץ</small></p>
</div>
<div id="song2" class="song" onmouseover="ShowSong(2);" onmouseout="DeleteSong(2);">
<p class="title">כותרת השיר<br />
<small class="writer">זמר</small></p>
</div>

person Arad55    schedule 18.11.2014    source источник


Ответы (1)


Вместо того, чтобы добавлять слова с помощью JavaScript, вы можете поместить их в HTML и скрыть/отобразить их с помощью CSS:

.song div {
  display: none;
}

.song:hover div {
  display: block;
}

Скрипка

person Rick Hitchcock    schedule 18.11.2014