Javascript-форум (https://javascript.ru/forum/)
-   Общие вопросы Javascript (https://javascript.ru/forum/misc/)
-   -   Работает ли jquery с html сформированным динамически? (https://javascript.ru/forum/misc/9963-rabotaet-li-jquery-s-html-sformirovannym-dinamicheski.html)

warobushek 13.06.2010 07:36

Работает ли jquery с html сформированным динамически?
 
Пишу вот такой код и .. обработчик события не работает.

<html>
<head>
<style type="text/css">
.active {border: solid 1px red;}
</style>
<script type="text/javascript" src="jquery-1.4.2.js"></script>
<script type="text/javascript">
$(function() {
	$('#suggestS ul li').hover(
		function () {
			$('#suggestS ul li').attr('class','');
			$(this).attr('class','active');
			//alert('!');
		},
		function () {}
	);
});

function makelist() {
	var obj = document.getElementById('suggestS');
	obj.innerHTML = '<ul><li>1</li><li>12</li><li>123</li><li>1234</li></ul>'
}
window.onload = makelist;
</script>
</head>

<body>
	<div id="suggestS">
	</div>
</body>

</html>


Если список задать в html статически, то все будет ок.

Этот пример подтверждает, что обработчики событий из jquery нельзя использовать для динамически сформированныз элементов?

haha 13.06.2010 07:39

Надо переназначать обработчики после создания новых элементов, или назначать обработчики иным образом.

warobushek 13.06.2010 07:54

я пошел по пути простого указывания onmouseover для каждого сформированного элемента.

но интересено
переназначать обработчики это как?

exec 13.06.2010 08:00

warobushek, обратиться к ним как к обычным элементам и назначить обработчик события.

haha 13.06.2010 08:13

function() {
	    $('#suggestS ul li').hover(
	        function () {
	            $('#suggestS ul li').attr('class','');
	            $(this).attr('class','active');
	            //alert('!');
	        },
	        function () {}
	    );
	}

эту функцию запускать после makelist.

warobushek 13.06.2010 08:26

спасиб


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