Я использую функцию JavaScript и некоторые jQuery для выполнения двух действий на странице. Первая - это простая функция JS, позволяющая скрывать / показывать элементы div и изменять активное состояние вкладки:
Это JS, который показывает / скрывает div и изменяет активное состояние на некоторых вкладках:
var ids=new Array('section1','section2','section3');
function switchid(id, el){
hideallids();
showdiv(id);
var li = el.parentNode.parentNode.childNodes[0];
while (li) {
if (!li.tagName || li.tagName.toLowerCase() != "li")
li = li.nextSibling; // skip the text node
if (li) {
li.className = "";
li = li.nextSibling;
}
}
el.parentNode.className = "active";
}
function hideallids(){
//loop through the array and hide each element by id
for (var i=0;i<ids.length;i++){
hidediv(ids[i]);
}
}
function hidediv(id) {
//safe function to hide an element with a specified id
document.getElementById(id).style.display = 'none';
}
function showdiv(id) {
//safe function to show an element with a specified id
document.getElementById(id).style.display = 'block';
}
HTML:
<ul>
<li class="active"><a onclick="switchid('section1', this);return false;">ONE</a></li>
<li><a onclick="switchid('section2', this);return false;">TWO</a></li>
<li><a onclick="switchid('section3', this);return false;">THREE</a></li>
</ul>
<div id="section1" style="display:block;">TEST</div>
<div id="section2" style="display:none;">TEST 2</div>
<div id="section3" style="display:none;">TEST 3</div>
Теперь проблема ....
Я добавил галерею изображений jQuery под названием galleria на одну из вкладок. Галерея прекрасно работает, когда она находится в div, который изначально установлен для отображения: блок. Однако, когда он находится в одном из элементов div, для которого установлено отображение: none; часть галереи не работает, когда div переключается, чтобы быть видимым. В частности, перестает быть записан следующий css (созданный galleria jQuery):
element.style {
display:block;
height:50px;
margin-left:-17px;
width:auto;
}
Насколько я могу судить, я не могу понять, почему происходит сбой галереи, когда для нее установлено отображение div: нет. Так как это объявление перезаписывается при нажатии на вкладку (с помощью функций Javascript выше), почему это может вызвать проблемы? Как я уже упоминал, он отлично работает, когда живет в display: block; отд.
Есть идеи? Я не ожидаю, что кто-нибудь будет знаком с галереей изображений jQuery galleria ... но, возможно, идея о том, как можно решить эту проблему?
Спасибо!