Показать сообщение отдельно
  #1 (permalink)  
Старый 15.03.2015, 16:56
Кандидат Javascript-наук
Отправить личное сообщение для jaroslav.tavgen Посмотреть профиль Найти все сообщения от jaroslav.tavgen
 
Регистрация: 18.09.2014
Сообщений: 128

Как сделать так, чтобы onmouseout учитывал увеличившийся размер контейнера?
Возьмём вот такой код:

<span id="one" onmouseover="AddString()" onmouseout="RemoveString()">Pervaya Stroka

  <span id="two" style="display:block"></span>

</span>

<script>

function AddString() {

    document.getElementById("two").innerHTML = 'VtorayaStroka';

}

function RemoveString() {

    document.getElementById("two").innerHTML = '';

}
</script>


Когда наводишь мышкой на "Pervaya Stroka", скрипт добавляет вторую строку. Когда уводишь курсор с первой строки, вторая строка исчезает.

Надо: Когда наводишь мышкой на "Pervaya Stroka", скрипт добавляет вторую строку. Когда уводишь курсор с первой строки В ЛЮБОЕ МЕСТО, КРОМЕ ВТОРОЙ СТРОКИ, вторая строка исчезает.

Если честно, текущих знаний мне не хватило, чтобы это реализовать.

Что я пробовал:

<span id="one" onmouseover="AddString()">Pervaya Stroka

  <span id="two" style="display:block"></span>

</span>

<script>

function AddString() {

    var element = document.getElementById("one");

    element.removeEventListener("mouseover", AddString);

    document.getElementById("two").innerHTML = 'VtorayaStroka';
	
	element.addEventListener("mouseout", RemoveString, true);
	

}

function RemoveString() {

    var element = document.getElementById("two");

    element.removeEventListener("mouseout", RemoveString);

    element.innerHTML = '';
	
	element.addEventListener("mousever", AddString, true);

}
</script>


с расчётом на то, что если удалить ивент и сразу его добавить, то скрипт пересчитает высоту контейнера. Ан-нет - результат тот же.

Как добиться нужного результата?

Последний раз редактировалось jaroslav.tavgen, 15.03.2015 в 17:01. Причина: Ошибка в названии темы
Ответить с цитированием