Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.12.2013, 20:06
Новичок на форуме
Отправить личное сообщение для Icepeek Посмотреть профиль Найти все сообщения от Icepeek
 
Регистрация: 08.12.2013
Сообщений: 5

jQuery выборка в массив
Добрый вечер. Имеем: код html
<div class="videoContainer">
		<div class="previewImg">
			<img src="mov/preview/gp.jpg" alt="Garry_Potter" />
		</div>
		<div class="wigetVideo">
			<div class="titleView">
				Гарри Поттер и Дары смерти (часть 1)
			</div>
			<div class="timeView">
			1:42:00
			</div>
			<div class="videoButton">
				<div class="descriptionButton descriptionColor">
					<img src="img/comment.png" alt="comment_button" width="30px" class="commentPic" />
				</div>
				<div class="playButton playColor">
					<img src="img/play.png" alt="play_button" width="30px" />
				</div>
				<div class="profileButton profileColor">
					<img src="img/profile.png" alt="profile_button" width="30px" />
				</div>
			</div>
		</div>	
			<div class="descriptionView">
				<p>Гарри, Рон и Гермиона отправляются в рискованное путешествие, 
				ведь им предстоит выполнить важную миссию: 
				найти и уничтожить тайные источники бессмертия и могущества Волан-де-Морта — Крестражи. 
				</p>
			</div>
	</div>

Таких блоков будет много, в них будут меняться следующие блоки: <div class="previewImg"> , <div class="titleView">, <div class="timeView">, <div class="descriptionView"> Блоки выстраиваются по float. Как сделать, чтобы по щелчку на блоке <div class="descriptionButton"> выводилось только нужное описание <div class="descriptionView">, а не все сразу? Пример jQuery кода с подсчетом координат, чтобы всплывающая подсказка выводилась в видимой области экрана (еще не дописан):
$(document).ready(function () {
$('.descriptionView').hide();
$('.descriptionButton').click(function() {
	var ttLeft,
		    ttTop,
			$this=$('.wigetVideo'),
			$tip=$('.descriptionView'),
		    triggerPos = $this.offset(),
		    triggerH = $this.outerHeight(),
		    triggerW = $this.outerWidth(),
			tipW = $tip.outerWidth(),
		    tipH = $tip.outerHeight(),
		    screenW = $(window).width(),
			screenH = $(window).height(),
			scrollTop = $(document).scrollTop();
		
		if (screenH - triggerPos.top - tipH - triggerH - scrollTop > 0 ) {
			ttTop = triggerPos.top + triggerH;
			ttLeft = triggerPos.left-10;
				
		} else {
			ttTop = triggerPos.top-10;
			ttLeft = triggerPos.left + triggerW;
		}

		
		$tip
		   .css({
			left : ttLeft ,
			top : ttTop,
			position:"absolute"			
		    }).fadeIn(100);
			
	});// end click
	$('.descriptionButton').mouseout(function() {
		$('.descriptionView').fadeOut(100);
	});
	
	
});//end ready


Я полагаю нужен массив. При ответе, представьте, что мне три года =)
Ответить с цитированием
  #2 (permalink)  
Старый 08.12.2013, 20:29
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Icepeek
Как сделать, чтобы по щелчку на блоке <div class="descriptionButton"> выводилось только нужное описание <div class="descriptionView">, а не все сразу?
Как вариант...

<!DOCTYPE html>
<html>
<head>
<script src="http://code.jquery.com/jquery-latest.js"></script>
<!--
<link rel="stylesheet" type="text/css" href="tmp.css" />
<meta http-equiv="Content-Type" content="text/html; charset=utf-8">
<meta http-equiv="Content-Type" content="text/html; charset=windows-1251">
-->
<style type="text/css">
.descriptionView {
	display: none;
}
</style>
<script type="text/javascript">
$(function (){
	$('.descriptionButton').click(function (){
		$(this).parents('.wigetVideo').next('.descriptionView').toggle();
	});
});
</script>
</head>
<body>
<div class="videoContainer">
		<div class="previewImg">
			<img src="mov/preview/gp.jpg" alt="Garry_Potter" />
		</div>
		<div class="wigetVideo">
			<div class="titleView">
				Гарри Поттер и Дары смерти (часть 1)
			</div>
			<div class="timeView">
			1:42:00
			</div>
			<div class="videoButton">
				<div class="descriptionButton descriptionColor">
					<img src="img/comment.png" alt="comment_button" width="30px" class="commentPic" />
				</div>
				<div class="playButton playColor">
					<img src="img/play.png" alt="play_button" width="30px" />
				</div>
				<div class="profileButton profileColor">
					<img src="img/profile.png" alt="profile_button" width="30px" />
				</div>
			</div>
		</div>	
			<div class="descriptionView">
				<p>Гарри, Рон и Гермиона отправляются в рискованное путешествие, 
				ведь им предстоит выполнить важную миссию: 
				найти и уничтожить тайные источники бессмертия и могущества Волан-де-Морта — Крестражи. 
				</p>
			</div>
	</div>
</body>
</html>
Ответить с цитированием
  #3 (permalink)  
Старый 08.12.2013, 21:06
Новичок на форуме
Отправить личное сообщение для Icepeek Посмотреть профиль Найти все сообщения от Icepeek
 
Регистрация: 08.12.2013
Сообщений: 5

Эээээ, во я балда. Так просто оказалось. Премного благодарен
Ответить с цитированием
  #4 (permalink)  
Старый 08.12.2013, 21:44
Новичок на форуме
Отправить личное сообщение для Icepeek Посмотреть профиль Найти все сообщения от Icepeek
 
Регистрация: 08.12.2013
Сообщений: 5

Еще вопрос: Объясню суть. Есть картинка, поверх нее наложен слой <div class="wigetVideo">. На этом слое есть кнопка с описанием. Если прокрутить страницу вниз (когда много этих картинок) и на самом нижнем ряду нажать на кнопку описания, оно отобразиться, но я не увижу весь текст. Для этого я хочу разместить описание в другом месте. Приведенный мною пример jQuery кода это делает, НО все отсчеты ведутся от первого <div class="wigetVideo">. Как мне сделать, чтобы отсчет производился от того <div class="wigetVideo">, в котором я кликну по кнопке с описанием? Другими словами, как мне обратиться к кнопке, чтобы скрипт знал в каком блоке <div class="videoContainer"> она находится и от какого блока необходимо вести отсчеты?

PS: надеюсь понятно получилось объяснить.
Ответить с цитированием
  #5 (permalink)  
Старый 09.12.2013, 08:53
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Icepeek
Так просто оказалось
Сообщение от Icepeek
Как мне сделать, чтобы отсчет производился от того <div class="wigetVideo">, в котором я кликну по кнопке с описанием?
Так же по аналогии и сделать. Все просто!
Ответить с цитированием
  #6 (permalink)  
Старый 09.12.2013, 12:48
Новичок на форуме
Отправить личное сообщение для Icepeek Посмотреть профиль Найти все сообщения от Icepeek
 
Регистрация: 08.12.2013
Сообщений: 5

Да ладно вам потешаться. Я подумал, что получится разобраться, а пол ночи и все утро сижу и туплю
Ответить с цитированием
  #7 (permalink)  
Старый 09.12.2013, 13:20
Аватар для ksa
ksa ksa вне форума
CacheVar
Отправить личное сообщение для ksa Посмотреть профиль Найти все сообщения от ksa
 
Регистрация: 19.08.2010
Сообщений: 14,205

Сообщение от Icepeek
Я подумал, что получится разобраться
Смотри на дерево своих элементов...

Зная любого дитя всегда найдешь свой материнский videoContainer...

$(<дитё>).parents('.videoContainer');
Ответить с цитированием
  #8 (permalink)  
Старый 09.12.2013, 16:43
Новичок на форуме
Отправить личное сообщение для Icepeek Посмотреть профиль Найти все сообщения от Icepeek
 
Регистрация: 08.12.2013
Сообщений: 5

Спасибо за помощь огромное. Разобрался с элементами. Вот что надо было исправить в моем коде
$this=$(this).parents('.wigetVideo'),
$tip=$(this).parents('.wigetVideo').siblings('.descriptionView'),
Ответить с цитированием
Ответ



Опции темы Искать в теме
Искать в теме:

Расширенный поиск


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Данные в массив из TXT файла jQuery MasterDmx Общие вопросы Javascript 3 07.11.2013 16:09
выборка из MySQL с помощью PHP с использованием JQuery NataliMi jQuery 1 06.11.2012 23:13
Возвращаемый массив jQuery селектора HelpeR jQuery 11 26.06.2012 16:16
выборка идентификатора при помощи jQuery из цикла PHP... xormax jQuery 4 27.04.2011 13:59
возможно: массив + выборка mvorobjov Общие вопросы Javascript 5 13.08.2008 17:54