Javascript.RU

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

Сложные селекторы
Такая вот конструкция:

<div class="parent">
       <div class="child-lev-1">
      		<a href="#"><div class="child-lev-2"></div></a>
       </div>
       <div class="child-lev-1-1">
                <a href="#">Link</a>
       </div>
</div>


Такой код:

$(".parent div").hover(function() {
      $(как здесь определить "child-lev-2"?).addClass("hvr");


Т.е. - как выбрать именно этот (.child-lev-2), очень нужный элемент?
P.S. - таких конструкций на странице очень много, с id не получается...

Последний раз редактировалось AlMironoff, 06.12.2009 в 11:44. Причина: уточнение уровней
Ответить с цитированием
  #2 (permalink)  
Старый 06.12.2009, 07:11
Аватар для Tim
Tim Tim вне форума
Профессор
Отправить личное сообщение для Tim Посмотреть профиль Найти все сообщения от Tim
 
Регистрация: 05.06.2009
Сообщений: 1,703

xPath вам в руки http://www.rsdn.ru/article/inet/jQuery.xml#E4ZAE

хотя возможно я поторопился, должно проще делаться, просто я jQuery мало общаюсь. Но всё равно ссылку посмотрите там много полезных примеров.

Последний раз редактировалось Tim, 06.12.2009 в 07:14.
Ответить с цитированием
  #3 (permalink)  
Старый 06.12.2009, 08:13
Интересующийся
Отправить личное сообщение для colonel Посмотреть профиль Найти все сообщения от colonel
 
Регистрация: 30.11.2009
Сообщений: 24

Вот так должно работать:
$('div[class="child-lev-2"]').addClass("hvr")

с id - тоже самое:
$('div[id="child-lev-2"]').addClass("hvr")
Ответить с цитированием
  #4 (permalink)  
Старый 06.12.2009, 11:34
Новичок на форуме
Отправить личное сообщение для AlMironoff Посмотреть профиль Найти все сообщения от AlMironoff
 
Регистрация: 06.12.2009
Сообщений: 4

[quote=colonel;37277]Вот так должно работать:
$('div[class="child-lev-2"]').addClass("hvr")

Не работает. вернее работает, но неправильно - выбирает ВСЕ элементы class="child-lev-2" на странице. а нужен только один, который находится в том-же "parent"-элементе... поэтому же я и написал сначала
$(".parent div").hover(function() {
- чтобы функция реагировала только на элементы, вложенные в парент.
Ответить с цитированием
  #5 (permalink)  
Старый 06.12.2009, 11:44
Новичок на форуме
Отправить личное сообщение для AlMironoff Посмотреть профиль Найти все сообщения от AlMironoff
 
Регистрация: 06.12.2009
Сообщений: 4

Сообщение от Tim Посмотреть сообщение
xPath вам в руки http://www.rsdn.ru/article/inet/jQuery.xml#E4ZAE

хотя возможно я поторопился, должно проще делаться, просто я jQuery мало общаюсь. Но всё равно ссылку посмотрите там много полезных примеров.
Примеров много, спасибо, только вот все не то...

$(".parent div").hover(function() {
	$(this).addClass("hvr");	}

работает, но недостаточно правильно. не отрабатывает добавление класса к "child-lev-2", если срабатывает на "child-lev-1-1".
Ответить с цитированием
  #6 (permalink)  
Старый 06.12.2009, 12:06
Аватар для micscr
Профессор
Отправить личное сообщение для micscr Посмотреть профиль Найти все сообщения от micscr
 
Регистрация: 10.09.2009
Сообщений: 1,566

Пробуй так:
$(".parent div").hover(
    function() 
    {
        $(".child-lev-2", this).addClass("hvr") 
    }
);


P.S. У меня работает - может и то что ты хочешь.
Ответить с цитированием
  #7 (permalink)  
Старый 06.12.2009, 14:37
Аспирант
Отправить личное сообщение для Urfin Посмотреть профиль Найти все сообщения от Urfin
 
Регистрация: 22.07.2009
Сообщений: 85

$(".parent div").hover(
function() {
     $(this).find(".child-lev-2").addClass("hvr");
},
function(){
    $(this).find(".child-lev-2").removeClass("hvr");
}
);
Ответить с цитированием
  #8 (permalink)  
Старый 07.12.2009, 13:16
Новичок на форуме
Отправить личное сообщение для AlMironoff Посмотреть профиль Найти все сообщения от AlMironoff
 
Регистрация: 06.12.2009
Сообщений: 4

Micscr, Urfin - огромное спасибо, все Ваши предложенные варианты - работают. Именно то, что надо.
Ответить с цитированием
  #9 (permalink)  
Старый 20.05.2013, 13:45
Новичок на форуме
Отправить личное сообщение для rozmath Посмотреть профиль Найти все сообщения от rozmath
 
Регистрация: 20.05.2013
Сообщений: 8

Помогите побраться к елементу через jQuery
Привет всем!
Есть система переписки на php + mySql + jQuery
Проблема вот в чем:
Нужно реализовать клик мышки на комментарии.
Комментарии находятся в такой иерархии:

<div class="form_field_center" id="message_list">
	<div id="newComment"></div>
	<div id="comment_list">
          //Сообщение читаются из базы и вставляются сюда
        </div>
</div>


Сообщения читаются из базы в файле .рhp и возвращаются благодаря функции на AJAX
foreach($comments as $c)
	echo '<div>'.$c->markup_read().'</div>';


$('#comment_list').append(html);


В свою очередь, существует класс сообщений с методом markup_read, что возвращает HTML разметку сообщение с соответствующими классами.
public function markup_read(){
		$this->data['date_time'] = strtotime($this->data['date_time']);
		
		return '<div class="comment" id='.$this->data['id'].'>
						<div class="avatar"></div>
						<div class="delete" id='.$this->data['id'].'></div>
						<div class="edit" 	id='.$this->data['id'].'></div>
						<div class="author">'.$this->data['author'].' ᐅ '.$this->data['recipient'].'</div>
						<div class="date" title="Added at '.date('H:i \o\n d M Y',$this->data['date_time']).'">'.date('d/m/Y H:i:s',$this->data['date_time']).'</div>
						<p>'.$this->data['message'].'</p>
						<div>'.$this->data['id'].'</div>
						</div>';
	}


Нужно реализовать обработку клиак по разметке сообщение - тоесть по классу comment, delete, edit ...
Как добраться до класса comment? Помогите, пожалуйста. Спасибо.
Ответить с цитированием
  #10 (permalink)  
Старый 20.05.2013, 13:54
Аватар для animhotep
Профессор
Отправить личное сообщение для animhotep Посмотреть профиль Найти все сообщения от animhotep
 
Регистрация: 17.01.2013
Сообщений: 887

Сообщение от rozmath
Как добраться до класса comment?
$('.comment')
Ответить с цитированием
Ответ


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

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