CSS изменить другой элемент при событии первого
От: _NN_  
Дата: 19.05.15 09:29
Оценка:
Имеем страничку

<html><body>
<div>
 <div>
  <div id="xyz">abc</div>
 </div>
<div>
<div id="qwe">zxc</div>
</body></html>


Мне нужно допутим поменять цвет текста qwe при наведении мышкой на xyz.
Есть в CSS '~' но это работает для элементов в одном блоке. xyz ~ qwe .
А вот мне что-нибудь в стиле xyz ~ /html/body/qwe

Возможно ли такое ?
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re: CSS изменить другой элемент при событии первого
От: c-smile Канада http://terrainformatica.com
Дата: 19.05.15 16:58
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>А вот мне что-нибудь в стиле xyz ~ /html/body/qwe


_NN>Возможно ли такое ?


В CSS — нет. Только скриптом.
Re[2]: CSS изменить другой элемент при событии первого
От: _NN_  
Дата: 19.05.15 18:11
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>В CSS — нет. Только скриптом.


А скриптом можно ли подписаться на еще не существующий элемент ?
Т.е. автоматически когда он появится тогда и подписаться.
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[3]: CSS изменить другой элемент при событии первого
От: GarryIV  
Дата: 19.05.15 21:52
Оценка: 12 (1)
Здравствуйте, _NN_, Вы писали:

_NN>А скриптом можно ли подписаться на еще не существующий элемент ?

_NN>Т.е. автоматически когда он появится тогда и подписаться.

jQuery можно см http://api.jquery.com/delegate/
WBR, Igor Evgrafov
Re[3]: CSS изменить другой элемент при событии первого
От: c-smile Канада http://terrainformatica.com
Дата: 19.05.15 22:14
Оценка: 12 (1)
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, c-smile, Вы писали:


CS>>В CSS — нет. Только скриптом.


_NN>А скриптом можно ли подписаться на еще не существующий элемент ?

_NN>Т.е. автоматически когда он появится тогда и подписаться.

Да нет проблем ибо события всплывающие.

$(document).on("mouseenter", "#xyz", function() { $("#qwe").addClass("master-hover");})
           .on("mouseleave", "#xyz", function() { $("#qwe").removeClass("master-hover");});


когда id=xyz и id="qwe" появятся тогда и сработает.
Re[4]: CSS изменить другой элемент при событии первого
От: _NN_  
Дата: 20.05.15 13:22
Оценка:
Здравствуйте, GarryIV, Вы писали:

GIV>jQuery можно см http://api.jquery.com/delegate/


As of jQuery 1.7, .delegate() has been superseded by the .on
Пора обновляться
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: CSS изменить другой элемент при событии первого
От: GarryIV  
Дата: 20.05.15 15:35
Оценка:
Здравствуйте, _NN_, Вы писали:

GIV>>jQuery можно см http://api.jquery.com/delegate/


_NN>As of jQuery 1.7, .delegate() has been superseded by the .on

_NN>Пора обновляться

ну не deprecated же
WBR, Igor Evgrafov
Re[4]: CSS изменить другой элемент при событии первого
От: _NN_  
Дата: 20.05.15 18:21
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Да нет проблем ибо события всплывающие.

А если их обработчик останавливает ?
Кто-то вызовет у себя stopPropagation() и все пропало
http://rsdn.nemerleweb.com
http://nemerleweb.com
Re[5]: CSS изменить другой элемент при событии первого
От: c-smile Канада http://terrainformatica.com
Дата: 20.05.15 21:15
Оценка:
Здравствуйте, _NN_, Вы писали:

_NN>Здравствуйте, c-smile, Вы писали:


CS>>Да нет проблем ибо события всплывающие.

_NN>А если их обработчик останавливает ?
_NN>Кто-то вызовет у себя stopPropagation() и все пропало

Да то же самое только в capturing фазе ( )

if(document.body.addEventListener){ 
   document.body.addEventListener("mouseenter", function(evt){...}, true);
   document.body.addEventListener("mouseleave", function(evt){...}, true);
}


Единственно внутри event handling функций нужно руками фильтр прописать

  var target = $( evt.target );
  if ( target.is( "#xyz" ) ) {
    // update slave element here
  }
Re[6]: CSS изменить другой элемент при событии первого
От: _NN_  
Дата: 21.05.15 06:29
Оценка:
Здравствуйте, c-smile, Вы писали:

CS>Единственно внутри event handling функций нужно руками фильтр прописать


CS>
CS>  var target = $( evt.target );
CS>  if ( target.is( "#xyz" ) ) {
CS>    // update slave element here
CS>  }
CS>


Вот тут хотелось бы не подписываться на document.body, а сразу на элемент когда он появится
Придется сделать так.
http://rsdn.nemerleweb.com
http://nemerleweb.com
 
Подождите ...
Wait...
Пока на собственное сообщение не было ответов, его можно удалить.