Уважаемые программисты, не хотите ли поломать голову над интересной задачкой?
Суть вопроса: в позиции sidebar выводятся один за другим модули. Соответственно, есть модуль, который выводится последним, в самом низу. Вопрос: как его отследить, и присвоить ему, допустим, определенный класс, например, .last? Разговор идет, естественно, о первой ветке Instant.
Пока на ум приходит только закрыть все модули в <li>...</li> и каким-нибудь скриптом ловить :last-child
Но это лишняя морока, и вмешательство в привычную всем структуру шаблонов… Хотелось бы оставить div'ы
Отследить последний модуль в позиции
ЕСТЬ РЕШЕНИЕ
ЗАКРЫТО
#1
6 декабря 2014 в 09:22
#2
6 декабря 2014 в 09:49
.sibebar div.module:last-child { background: red; }
r2, благодарю за быстрый ответ
я в точности так и пробовал, не получается, а вот если вместо дивов использовать список ul, то работает
P.S. Может, средствами php как-то можно "выловить" его прямо в template.php? Я в этом не силён, к сожалению…
я в точности так и пробовал, не получается, а вот если вместо дивов использовать список ul, то работает
P.S. Может, средствами php как-то можно "выловить" его прямо в template.php? Я в этом не силён, к сожалению…
Сегодня в 10:08
#4
6 декабря 2014 в 10:55
Ну раз "в точности так" не получается. то сделайте вот так —
#sidebar>div:last-child{background:red}
#5
6 декабря 2014 в 11:21
last еще в jquery есть. Можно в ту сторону посмотреть…
#6
6 декабря 2014 в 13:05
Pasha, ну не совсем в точности)) все-таки, классы и айди у меня другие))) но ваш совет помог — все дело в ">" оказалось. Спасибо.
Однако, проблема осталась, так как мне требуется не присвоить этому диву какие-то стили, а присвоить ему определенный класс, чтобы потом этот класс использовать в jquery. То есть
Причем этот класс будет "пустой", он лишь как маркер, который потом будет использоваться скриптом.
Я вижу только вариант решения через php, брать как-то из cms_modules номер позиции модуля, и… А дальше все туманно))
Однако, проблема осталась, так как мне требуется не присвоить этому диву какие-то стили, а присвоить ему определенный класс, чтобы потом этот класс использовать в jquery. То есть
<div class="module last">
Я вижу только вариант решения через php, брать как-то из cms_modules номер позиции модуля, и… А дальше все туманно))
#7
6 декабря 2014 в 13:26
тем болееПричем этот класс будет "пустой", он лишь как маркер, который потом будет использоваться скриптом.
yandex.ru/yandsearch?clid=9582&text=last%20%D0%B2%20jquery
первый результат
api.jquery.com/last/
#8
6 декабря 2014 в 13:59
У jQuery принцип отбора элементов практически такой же как и в css. То есть можно выбрать так:
Или же можно выбрать элемент при помощи фильтра как подсказал Евгениий:
Или… еще пять способов. Используйте то, что считаете удобным, суть одинакова.
$('#sidebar>div:last-child').addClass('my_class_name');
$('#sidebar>div').last().addClass('my_class_name');
#9
6 декабря 2014 в 15:02
отлично, спасибо всем!