Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   2 строки кода, не могу найти ошибку :( (jQuery) (https://javascript.ru/forum/misc/46112-2-stroki-koda-ne-mogu-najjti-oshibku-jquery.html)

Altai 28.03.2014 20:19

2 строки кода, не могу найти ошибку :( (jQuery)
 
есть простенький список:
<ol>
	<li>Харлей Дэвидсон</li>
	<li>Кроссовый мотоцикл</li>
	<li>Гоночный мотоцикл</li>
	<li>Концептуальный мотоцикл</li>
</ol>


Хочу, чтоб при наведении на список, происходило событие: пересчитывалось кол-во строк (ибо оно может меняться во время работы на странице). После этого, при наведении на строку, должно происходить другое событие: появляться сообщение с текстом этой строки. При первом наведении - сообщение появляется 1 раз. При 2-м - 2 раза. При 3-м - 3 раза, и т.д. до бесконечности. Почему так происходит? И как сделать так, чтоб сообщение появлялось всего 1 раз?

Если убрать первое событие (пересчет кол-ва строк в списке ol) - всё нормально работает, но при добавлении нового эл-та списка, при наведении на него сообщение не появляется. Уже не знаю, как и быть. Подскажите, кому не трудно

Код:

$('ol').mouseover(function(){
        $('ol li').mouseover(function(){
                alert($(this).text());
        });
});


Zuenf 28.03.2014 21:10

Вот так сделай:
$('ol').on('mouseover','li',function(){
		alert($(this).text());
});


Читай про делегирование событий.

Altai 28.03.2014 21:32

Цитата:

Сообщение от Zuenf (Сообщение 304928)
Вот так сделай:
$('ol').on('mouseover','li',function(){
		alert($(this).text());
});


Читай про делегирование событий.

Благодарю!


Часовой пояс GMT +3, время: 04:02.