2015-07-30 3 views
-1

У меня есть одна страница html, в которой находится вся навигация (скажем, их TABS).Как показать один div и скрыть другой div в javascript на той же странице html

Я написал javascript, чтобы показать его и скрыть еще один щелчок по ссылке.

Он хорошо работает на вкладке, которую я хочу, но когда я перехожу к другим вкладкам, которые div показывает внизу. Я не хочу, чтобы он отображался на всех других вкладках.

Это мой Javascript код:

function displayBlock(divName){ 
    if(document.getElementById("vend")) { 
     var oldDiv = document.getElementById("vend"); 
     oldDiv.style.display = 'none'; 
     //show div 
     var newDiv = document.getElementById(divName); 
     newDiv.style.display = 'block'; 

    } 
    else{ 
     var newDiv = document.getElementById(divName); 
     newDiv.style.display = 'none'; 
    } 
} 

Как изменить его, чтобы удовлетворить потребность?

HTML Структура:

<div class="tab-content"> 
    <div class="tab-pane" id="dashboard"> 
    <div class="container"> 
     <!-- Container code --> 
    </div> 
    </div> 
    <div class="tab-pane" id="vend"> 
    <div class="container"> 
     <!-- Container code --> 
      <a id="auto-topup2" href="dashboard#auto-topup" onclick="displayBlock('schedule');"> 
       Schedule Autovend       
      </a> 
    </div> 
    </div> 
    <div class="tab-pane" id="commision"> 
    <div class="container"> 
     <!-- Container code --> 
    </div> 
    </div> 
    <div id="schedule" style="display:none"> 
     <div class="tab-pane" id="auto-topup"> 
     <div class="container"> 
      <!-- Container code --> 
     </div> 
    </div> 
</div> 

В разделе венд я создал чьи OnClick будет вызывать функцию и скрыть Div с венд ид и показать Div с графиком ID .... Но DIV с scehdule ID показывает во всех закладках ..

Я надеюсь, что теперь он может быть несколько undestandable

+1

Лучшая работа с классами. Дайте всем tabContent один и тот же класс, например, контент. Когда должен отображаться специальный контент, скройте все элементы класса и просто покажите выбранный. – mimo

+0

Почему вы помещаете селектор 'document.getElementById (« vend »)' в оператор if? Нет условий для встречи? – Jay

+0

Я просто попробовал ... я знаю, что его ничего не стоит – Geetika

ответ

0

Чтобы скрыть все вкладки без выбранного один вы можете использовать эту функцию:

function displayBlock(idOfBlock) { 
    document.getElementByClass('block').style.display = 'none'; 
    document.getElementById(idOfBlock).style.display = 'block' 
} 

<div class="block" id="hello"> 
    hello 
</div> 
<div class="block" id="foobar"> 
    foobar 
</div> 
+0

Разве это не скроет нужную вкладку за долю секунды? Я предполагаю, что вы можете удалить класс из «idOfBlock», а затем добавить его снова, но мне не нравится это решение либо –

+0

, но он не узнает его. Это самое маленькое решение. Если вы не хотите скрывать это, вы настолько безопасны в глобальной переменной, но мне это не нравится. – mimo

+0

Он скроет все имена divs «block» .... я не хочу этого. – Geetika

Смежные вопросы