x__miller_x
@x__miller_x

Как сделать вывод div внутри другого div?

Дня доброго!
Достался в наследство сайт, там есть следующий код:
<div class="teams_block">
	<?php
	foreach ($humans as $human){
		?>
			<div class="team_element" data-id='<?= $human->id ?>'>
				<div class="round_block">
					<img src="/images/<?= $human->image ?>" />
				</div>
				<div class="title"><?= $human->name ?></div>
				<div class="desc"><?= $human->office ?></div>
				<img class="team_arrow" width="61" height="24" src="/img/team_arrow.png" />
				<div class="lastdiv"></div>
				<script type="text/javascript">
	$(document).ready(function(){
		$('body').on('click', '.team_element', function(){
			$('.team_description').remove();
			$(this).parent().after('<div class="team_description"><center><img src="/img/spinner_32.gif"></center></div>');
			$('.team_description').load('/command/humandescription?id='+$(this).data('id'), function(){
				$(this).css('display','block');
			});
			$('.team_element').removeClass('active');
			$('.round_block').removeClass('active');
			$(this).addClass('active');
			$(this).find('.round_block').addClass('active');
		});
	});
</script>
			</div>
		<?php
	}
	?>
</div>


Происходит следующее: при нажатии на любой блок с классом "team_element" под последним блоком появляется новый контейнер "team_description".

6285967a576a451ab8818b070ed2f9c5.png

Вопрос в следующем: как сделать так, чтобы "team_description" нужного мне "team_element" открывался внутри этого "team_element" после "lastdiv"?
  • Вопрос задан
  • 459 просмотров
Решения вопроса 1
lazalu68
@lazalu68
Salmon
Кстати если я правильно понял данный кусок php, у вас этот js выполняется столько раз, сколько у вас элементов в массиве $humans. Это же не дело, надо js вынести, если не в отдельный .js, то хотя бы из foreach. И зачем вам вообще нужен элемент lastdiv? Мне кажется его можно смело исключить. Получится как-то так:

<div class="teams_block">
<script type="text/javascript">
$(document).ready(function(){
	var team_elements = $('.team_element'), 
		round_blocks = $('.round_block');

	$('.team_element').on('click', function(){
		var self = $(this), 
			team_description = $('<div class="team_description"><center><img src="/img/spinner_32.gif"></center></div>');
		self.find('.team_description').remove();
		self.append(team_description);
		team_description.load('/command/humandescription?id='+self.data('id'), function(){
			$(this).css('display','block');
		});
		team_elements.removeClass('active');
		round_blocks.removeClass('active');
		self.addClass('active');
		self.find('.round_block').addClass('active');
	});
});
</script>
<?php foreach ($humans as $human){ ?>
<div class="team_element" data-id='<?= $human->id ?>'>
	<div class="round_block">
		<img src="/images/<?= $human->image ?>" />
	</div>
	<div class="title"><?= $human->name ?></div>
	<div class="desc"><?= $human->office ?></div>
	<img class="team_arrow" width="61" height="24" src="/img/team_arrow.png" />
</div>
<?php } ?>
</div>
Ответ написан
Пригласить эксперта
Ваш ответ на вопрос

Войдите, чтобы написать ответ

Похожие вопросы