Необходимость alert перед функцией 
		
		
		
		Добрый вечер! 
	Хочу разобраться. У меня есть такая конструкция: 
$(document).ready(function() {
.....
.....
alert ('Красим ячейки!');
	   	$('#my_table td:nth-child(28)').each(function() {
			if(this.innerHTML=='1'){
			$(this).closest("tr").addClass("activ");
			}
			
			
		});
.....
 Так работает, а если закомментировать alert 
//alert ('Красим ячейки!');
то не работает. Можете, пожалуйста, пояснить в чем тут дело?  | 
	
		
 где тестовый пример 
	 | 
	
		
 kyt, 
	или $(window).loadили 
$('#my_table tr').each(function() {var text = $('td', this).eq(28).text();
if(text == '1') $(this).addClass("activ");
 | 
	
		
 Спасибо за интерес bes. 
	Он (пример) 946 строк. Я могу выложить. Но сначала: 1. Просто сюда как код положить? 2. Вы правда готовы все это просмотреть и откомментировать? Если да, то я с удовольствием это сделаю.  | 
	
		
 Цитата: 
	
 Для этого его можно заключить в специальные теги: js/css/html и т.п., например: [js] ... ваш код... [/js] О том, как вставить в сообщение исполняемый javascript и html-код, а также о дополнительных возможностях форматирования - читайте http://javascript.ru/formatting.  | 
	
		
 рони, не вполне понял Ваш ответ. Особенно его первую часть. 
	Щас погуглю, может пойму) Спасибо Вам за ответ.  | 
	
		
 Цитата: 
	
 http://javascript.ru/formatting потому как оснований для описанной тобой неработоспособности нет, а экстрасены в отпуске :)  | 
	
		
 Цитата: 
	
  | 
	
		
 kyt, 
	вместо $(document).ready напишите $(window).load  | 
	
		
 работает же :)  
	
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<style>
td {
	border: solid 1px;
}
.active {
	background: green
}
</style>
<div class="table"></div>
<script>
$(document).ready(function() {
	var str = "<table id='my_table'><tr>";
	for (var i = 1; i < 28; i++) {
		str += "<td>" + i + "</td>";
	}
	str += "<td>1</td></tr></table>";
	document.querySelector(".table").innerHTML = str;
		alert ('Красим ячейки!');
			$('#my_table td:nth-child(28)').each(function () {
				if(this.innerHTML == '1') {
					$(this).closest("tr").addClass("active");
				}
			});
});
</script>
 | 
	
		
 bes Так с алертом и у меня работает:) 
	рони $(window).load - картины не меняет. С алертом работает. Без алерта ячейки не красятся. Сейчас проверю Вашу функцию.  | 
	
		
 Цитата: 
	
 
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<style>
td {
	border: solid 1px;
}
.active {
	background: green;
}
</style>
<div class="table"></div>
<script>
$(document).ready(function() {
	var str = "<table id='my_table'><tr>";
	for (var i = 1; i < 28; i++) {
		str += "<td>" + i + "</td>";
	}
	str += "<td>1</td></tr></table>";
	document.querySelector(".table").innerHTML = str;
		//alert ('Красим ячейки!');
			$('#my_table td:nth-child(28)').each(function () {
				if(this.innerHTML == '1') {
					$(this).closest("tr").addClass("active");
				}
			});
});
</script>
 | 
	
		
 Как это в отпуске??? 
	Все дело в том что ячейки добавляются с помощью JavaScript но уже после того как выполняется код который раскрашивает ячейки. алерт просто приостанавливает выполнение скрипта и ячейки успевают появится в документе.  | 
	
		
 bes, Вы правы у Вас работает и у меня Ваш пример работает. И с алертом и без. А мой не работает. Попробую его локализовать. 
	 | 
	
		
 Цитата: 
	
  | 
	
		
 так, естественно, не работает, но и ячейки раньше времени не появляются 
	
<script type="text/javascript" src="http://code.jquery.com/jquery-1.11.1.min.js"></script>
<style>
td {
	border: solid 1px;
}
.active {
	background: green;
}
</style>
<div class="table"></div>
<script>
$(document).ready(function() {
		alert ('Красим ячейки!');
			$('#my_table td:nth-child(28)').each(function () {
				if(this.innerHTML == '1') {
					$(this).closest("tr").addClass("active");
				}
			});
	var str = "<table id='my_table'><tr>";
	for (var i = 1; i < 28; i++) {
		str += "<td>" + i + "</td>";
	}
	str += "<td>1</td></tr></table>";
	document.querySelector(".table").innerHTML = str;
});
</script>
 | 
	
		
 Цитата: 
	
  | 
	
		
 Я думаю заменить alert на setTimeout. Я о том думаю? 
	 | 
	
		
 bes ошибок в консоли нет 
	 | 
	
		
 выложи на http://jsfiddle.net/ или http://learn.javascript.ru/play 
	 | 
	
		
 Замена alert на setTimeout(function() { }, 500) проблемы не решает. 
	Ошибок нет, ячейки не крашеные  | 
	
		
 MallSerg, я понял твою мысль, убирает alert, ячейки есть, но не красятся 
	Цитата: 
	
  | 
	
		
 Ссылка вот. http://learn.javascript.ru/play/QuAc8b Аякс и css не прилетели. Пилено из http://www.datatables.net/. 
	Представляю немного моего js-прона)  | 
	
		
 Ну да, Аяксом из базы тяну. 
	 | 
	
		
 Еще наблюдение:   
	
setTimeout(function() {alert('trtrt'); }, 500);
вместо alert ячейки не красит.  | 
	
		
 Цитата: 
	
 не нахожу пока там в документации события готовности таблицы к работе, то есть когда данные уже подтянуты и помещены в ячейки  | 
	
		
 вот так наверное делать нужно, помещая код раскраски в callback-функцию 
	http://datatables.net/reference/option/ajax Цитата: 
	
  | 
	
		
 Не вполне Вас понял. Сначала мне придется сообразить что есть "...callback-функцию" и " ...в success делаешь?". 
	Я пока ковырялся с функцией рони. Заработала такая конструкция 
$('#my_table tr').each(function() {var text = $('td', this).eq(28).text();
			if(text == '0'){
				$(this).addClass("activ");
				alert ('if');
				}
			else {
				$(this).addClass("activ");
				alert ('else');
				}
			});
Причем только else и c alert.  | 
	
		
 Цитата: 
	
 alert тебе тормозит выполнение кода, за это время данные уже подтягиваются и твоё сравнение в if срабатывает, а пока не подтянулись, сравнивать не с чем  | 
	
		
 Вы правы. Читать уже начал. Большое Вам спасибо! 
	Последний вопрос. А в чем тогда проблема setTimeout? Почему он не работает?  | 
	
		
 по тому что setTimeout это функция  
	т.е. то что ты пишешь в скобках это параметры этой функции они вычисляются в момент вызова данной функции вызов функции ни как не тормозит выполнения кода просто когда то в далеком будущем наступит событие timeout и будет выполнен первый параметр функции setTimeout  | 
	
		
 Цитата: 
	
 но всё это рушится по описанию ниже https://developer.mozilla.org/en-US/...ers.setTimeout Цитата: 
	
 Цитата: 
	
 Цитата: 
	
 
setTimeout(function () {
	$('#my_table td:nth-child(28)').each(function () {
		if(this.innerHTML == '1') {
			$(this).closest("tr").addClass("active");
		}
	});
},*!*5000*/!*);
но сам понимаешь, какое качество кода получится: любая случайная задержка в ответе более N выставленных секунд и твой код перестанет работать чтобы окончательно убедиться можешь добавить console.log и посмотреть перед сравнением какое значение в ячейке 
$('#my_table td:nth-child(28)').each(function() {
            console.log(this.innerHTML);
            if(this.innerHTML=='1'){
а в целом, это элементарные действия по тестированию нерабочего кода (убрать лишнее, наалертить/наконсольлогить), поэтому прочти и это http://javascript.ru/forum/site/4917...u-zapuska.html и надеюсь теперь ты понимаешь, насколько ущербен твой исходный пост :)  | 
	
		
 Цитата: 
	
 небольшой пример «setTimeout ( a + b , 100 )» это вызов функции в котором первым параметром идет JS выражение и оно будет вычислено еще до вызова функции В случае «setTimeout ( function () {} , 100 )» первым параметром тоже идет выражение и оно так же будет вычислено (интерпретировано) до вызова setTimeout результатом вычисления данного выражения будет функция т.е. по пунктам: 1. вычисляется выражение JS (выражение возвращает безыменную функцию) 2. происходит вызов setTimeout 3. наступает событие timeout в котором происходит вызов безымянной функции  | 
	
		
 Загадка разрешилась именно так как сказал bes. 
	Там долго тянулись данные из Ajax, потом перестраивалась таблица... Была найдена функция fnCreatedRow http://legacy.datatables.net/usage/callbacks и все заработало без alert. Остается вопрос про setTimeout. Мне не удалось адекватно запустить http://datatables.net/reference/option/ajax Если кто-то возьмется мне это пояснить за разумную мзду. Пожалуйста, напишите мне.  | 
	
		
 Оп, не обновил 
	 | 
	
		
 Цитата: 
	
 Если бы я сразу сообразил как эту штуку локализовать и выложить, так бы и сделал. Буду учить мат. часть и писать неущербные посты.  | 
	
		
 Цитата: 
	
 http://datatables.net/reference/option/ajax Цитата: 
	
 Цитата: 
	
  | 
	
		
 Цитата: 
	
  | 
	
		
 Цитата: 
	
 на мой взляд, представление документации на их сайте страдает, хотя бы потому что на usage не выйдешь из меню на главной странице http://datatables.net/ а надо ещё каким-то образом добраться до http://legacy.datatables.net/  | 
	
		
 вообще ж-па :)  
	http://datatables.net/manual/index маленькими буквами Цитата: 
	
  | 
| Часовой пояс GMT +3, время: 02:50. |