Javascript.RU

Создать новую тему Ответ
 
Опции темы Искать в теме
  #1 (permalink)  
Старый 08.01.2015, 18:33
Интересующийся
Отправить личное сообщение для Deoman Посмотреть профиль Найти все сообщения от Deoman
 
Регистрация: 06.07.2012
Сообщений: 14

Как присвоить псевдо элемент переменной
Как например присваивание getElementById, но нужно взять псевдо элемент ::after у элемента c id = 'el1'.
Ну или если проще, то нужно отследить щелчок мыши по псевдо-элементу ::after.
window.getComputedStyle(document.getElementById('el1'), ':before')
- не работает как надо!

Последний раз редактировалось Deoman, 08.01.2015 в 19:39.
Ответить с цитированием
  #2 (permalink)  
Старый 08.01.2015, 20:39
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от Deoman
- не работает как надо!
Все работает:
<style>
#el1:before{
    content: 'Все работает!';
}
</style>

<div id="el1"></div>

<script>
var style = window.getComputedStyle(document.getElementById('el1'), ':before');
alert(style.content);
</script>

Только причем тут click?
Насколько я знаю - к псевдоэлементам доступа из js нет (кроме получения вычисленных стилей). Нужно просто избегать таких задач - зачем усложнять себе жизнь?
__________________
В личку только с интересными предложениями
Ответить с цитированием
  #3 (permalink)  
Старый 12.01.2015, 05:17
Аватар для MallSerg
Профессор
Отправить личное сообщение для MallSerg Посмотреть профиль Найти все сообщения от MallSerg
 
Регистрация: 07.03.2011
Сообщений: 1,127

Сообщение от Deoman
Как присвоить псевдо элемент переменной?
Никак
Псевдо элемент это не элемент страницы это просто набор CSS стилей
т.е. псевдо элемент невозможно получить как элемент HTML страницы у псевдоэлемента нет событий это просто набор стилей.
И работать с этими стилями можно точно так же как и с другими стилями на странице.
<style>
#el1:before{
    content: 'Все работает!';
}
</style>
 <div id="el1"></div>
 <script>
var CSSrules = document.styleSheets[0].cssRules[0].style;
var str = "Доступ из JS возможен";
var i = 0;
	setInterval( animate , 100 );
	function animate (){
		i++>30?i=1:0;
		CSSrules.cssText = "content:'"+ str.substr(0,i)+"'";
	};
alert(CSSrules.content);
</script>
Ответить с цитированием
  #4 (permalink)  
Старый 12.01.2015, 06:43
Аватар для danik.js
Профессор
Отправить личное сообщение для danik.js Посмотреть профиль Найти все сообщения от danik.js
 
Регистрация: 11.09.2010
Сообщений: 8,804

Сообщение от MallSerg
var str = "Доступ из JS возможен";
Я говорил про доступ к объектной модели. ТС хочет получать клик по псевдоэлементу. Думаю это практически невозможно осуществить.
Если только на основании стилей вычислить координаты псевдоэлемента.
Если элемент не img, то можно во время клика получить вычисленный стиль псевдоэлемента, удалить псевдоэлемент временно, а вместо него вставить временный элемент и применить к нему стили. Далее сравнить место клика с его расположением (и учесть z-index). Короче изврат полнейший ))

Не нужно просто функциональные элементы оформлять как псевдоэлементы. Это же очевидно - css для оформления, а не для функционала.
__________________
В личку только с интересными предложениями
Ответить с цитированием
Ответ



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

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


Похожие темы
Тема Автор Раздел Ответов Последнее сообщение
Как найти node элемент по позиции в html документе и обратоно meded90 Общие вопросы Javascript 0 06.09.2014 22:45
Как обернуть элемент? helatmyelo jQuery 4 08.05.2012 19:56
Как получить значение переменной из callback функции? Хиросим AJAX и COMET 5 24.04.2012 09:32
как реализовать свою функцию к переменной czp Общие вопросы Javascript 2 01.01.2012 19:52
Как присвоить переменной содиржимое тега h1 Leonline Общие вопросы Javascript 1 19.06.2008 22:27