Javascript-форум (https://javascript.ru/forum/)
-   jQuery (https://javascript.ru/forum/jquery/)
-   -   Как использовать each() для будущих элементов (https://javascript.ru/forum/jquery/35866-kak-ispolzovat-each-dlya-budushhikh-ehlementov.html)

pro_xaoc 25.02.2013 00:46

Как использовать each() для будущих элементов
 
Собственно вопрос, на который не нашел ответа в гугле.
Как использовать each() для будущих элементов? Я попробовал так:
$('table').on('click','#checkall',function(){
		$('input:checkbox:not(#checkall)').each(function(){this.checked = !this.checked;});
	});

т.е. на странице есть кнопка, он удаляет выделенные чекбоксом строки и подгружает новую партию строк. Вот после первой обновки, чекбокс перестает выделять все остальные чекбоксы. Значит надо как то делегировать. Но как? Заранее спасибо.

danik.js 25.02.2013 06:04

А элемент table не удаляется в процессе "обновки"? Так то клик у вас делегируется. Попробуйте вместо 'table' временно поставить document или 'body'. И ксати, разве так не работает - $('input:checkbox').prop('checked', true) ? Или нужна именно инверсия выбора?

pro_xaoc 25.02.2013 07:12

danik.js,
блин, а ведь правда)) не доглядел)) спасибо вам!
Цитата:

$('input:checkbox').prop('checked', true)
да, вы правы, такой код лучше. В оконцовке сделал так:
$('body').on('change','#checkall',function(){
		if($('#checkall').is(':checked'))
			$('input:checkbox:not(#checkall)').prop('checked', true);
		else
			$('input:checkbox:not(#checkall)').prop('checked', false);
	});

И очень хорошо работает)


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