Отображения элементов относительно друг
Всем привет!
Не могу решить вопрос отображения элементов относительно друг друга. Буду благодарен если подскажите. 1. Нужно чтобы при появлении одного элемента - все остальные скрывались. Делал так, но не выходит...
$(this).parents("#photo-block .brand-panel #hide").hide();
2. Перестала работать привязка элемента к другом, когда динамически генерирую контент. Нужно чтобы работало. Статически работает вот так - http://teleport.ink/index_a.html Вот функция.
function position() {
panel_info.position({
of: $(this),
my: "center center",
at: "center bottom+6",
collision: "flipfit",
within: image_mark
});
}
Вот весь код JS
$(document).ready(function(){
$(".mark-brand").click(function(){
var panel_info = $(this).next('.brand-panel'); //Панель относящаяся к данной метке
var switch_status = $(this).next('.brand-panel').attr("id"); //Берем значение переключателя
var image_mark = $(this).siblings("#image");
//Функция, которая приклеивает панель к метке.
function position() {
panel_info.position({
of: $(this),
my: "center center",
at: "center bottom+6",
collision: "flipfit",
within: image_mark
});
}
//Взависимости от значения id либо скрываем, либо показываем панель
if ( switch_status == "hide" ) {
position();
$(this).next('.brand-panel').attr("id","show");
panel_info.show();
$(this).parents("#photo-block .brand-panel #hide").hide(); //Здесь должны скрываться все панели с id hide
}
else if ( switch_status == "show")
{
panel_info.hide();
$(this).next('.brand-panel').attr("id","hide");
}
});
});
А вот html
<div class="photo-block">
{% for tag in photo.get_tags %}
{% if tag.z_position == 1 %}
<div class="mark-brand" style="top:{{ tag.y_position }}; left:{{ tag.x_position }};" id="{{ tag.id }}">
<svg class="star-mark star-green-active" viewBox="0 0 105 105">
<use xlink:href="#star-mark"></use>
</svg>
</div>
<div class="brand-panel active" id="show">
<a href="{{ tag.url }}">
<p>{{ tag.brand_name }}</p>
<div class="button-mark">
<svg class="arrow-right-icon arrow-right-icon-green" viewBox="0 0 15.15 22">
<use id="mark-close-use" xlink:href="#arrow-right-icon"></use>
</svg>
</div>
</a>
</div>
{% else %}
<div class="mark-brand" style="top:{{ tag.y_position }}; left:{{ tag.x_position }};" id="{{ tag.id }}">
<svg class="star-mark" viewBox="0 0 105 105">
<use xlink:href="#star-mark"></use>
</svg>
</div>
<div class="brand-panel position" id="hide">
<a href="{{ tag.url }}">
<p>{{ tag.brand_name }}</p>
<div class="button-mark">
<svg class="arrow-right-icon arrow-right-icon-green" viewBox="0 0 15.15 22">
<use id="mark-close-use" xlink:href="#arrow-right-icon"></use>
</svg>
</div>
</a>
</div>
{% endif %}
{% endfor%}
<img src="/uploads/{{ photo.image }}" id="image"/>
<a href="/add/{{ item.id }}" class="button-add-edit" id="button-add-edit"></a>
</div>
Спасибо. |
Цитата:
|
Цитата:
|
Цитата:
$(document).ready() Оно же должно работать только после загрузки. Все элементы загружаются сразу... |
Цитата:
Что касается Цитата:
|
$(this).parents("#photo-block .brand-panel #hide").hide();
Вот это не работает. И вот это position(); |
makarow.dmitry, ты в состоянии сделать тестовый пример где проявляется твоя проблема?
|
Цитата:
position(); - также не делается свою задачу. |
makarow.dmitry, начнем с того, что это далеко не тестовый пример...
Но даже это уже показывает некую фигнотень. Поскольку селектор #photo-block .brand-panel #hide не может выбрать более одного элемента, потому, как заканчивается на селектор идентификатора - #hide. |
Цитата:
C основными моментами разобрался. Вот только не нашел решение одной проблемы: Она возникает, когда генерируется контент, например аяксом. Все id и class такие же, как в рабочих элементах (которые сгенерировались при загрузке) Пробовал load - но не сработало. Может подскажите что я упускаю из основных моментов. Спасибо |
Цитата:
|
| Часовой пояс GMT +3, время: 06:59. |