2016-04-01 4 views
-1

Я пытаюсь показать скрытые блоки div в зависимости от ссылки, на которую он нажимает. По умолчанию все div будут скрыты. Все советы приветствуются.Jquery show hide div при нажатии на ссылку

HTML код -

<div class="singleFlights"> 
    <div class="itinerarySummary"> 
    <div class="itineraryMenu"> 
     <ul class="list-inline"> 
      <li><a href="#flight-itinery">Flight itinerary</a></li> 
      <li><a href="#fare-rules">Fare rules</a></li> 
      <li><a href="#baggage-info">Baggage Information</a></li> 
     </ul> 
    </div> 
    <div class="itineraryPanel"> 
     <div id="flight-itinery" class="itineraryPanelItem"> 
      <!-- Content Here --> 
     </div> 
     <div id="fare-rules" class="itineraryPanelItem"> 
      <!-- Content Here --> 
     </div> 
     <div id="baggage-info" class="itineraryPanelItem"> 
      <!-- Content Here --> 
     </div> 
    </div> 
    </div> 
</div> 

<div class="singleFlights"> 
..................... 
..................... 
</div> 

Требование -

По умолчанию '' itineraryPanel сНа шкурой. Если пользователь нажимает на 'маршрут полета' ссылки в разделе 'itineraryMenu' сНу 'itineraryPanel' покажет (скользят вниз) с пунктом DIV 'itineraryPanelItem'. Другие div '# тарифные правила' и '# багаж-информация' скроется. То же самое произойдет, если нажать на Правила тарифов и Информация о багаже ​​ также.

Стараюсь с -

$(document).ready(function(){ 
    if($('.flightListing').length > 0){ 
     $('.singleFlights').each(function(){ 
      $('.itineraryMenu ul.list-inline li a').click(function(){ 

      }); 
     }); 
    } 
}); 

Я использую bootstrap3. Обратите внимание, что я не хочу показывать div 'itineraryPanel' до тех пор, пока пользователь не нажмет какую-либо ссылку. и после щелчка 2-го раза на одной и той же ссылке открывать div вверх и скрывать.

Вот живой код после того, как включены в Винсент G коды - http://45.114.142.104/design//test/cloud/flight-listing-1-n.html

+0

Где ваш код JavaScript? – Roy

+1

Возможный дубликат [Показать div при нажатии на соответствующую ссылку и скрыть остальные] (http://stackoverflow.com/questions/18843244/show-a-div-when-click-on-related-link-and-hide -другие) – TylerH

+0

Вы уже искали решение, прежде чем спрашивать? https://www.google.com/search?q=show%2Fhide+a+div+when+I+click+a+link+site%3Astackoverflow.com&oq=show%2Fhide+a+div+when+I+ нажмите + а + ссылку + сайт% 3Astackoverflow.com & gs_l = serp.3 ... 48199.52150.0.52244.25.25.0.0.0.0.116.2063.22j3.25.0 .... 0 ... 1c.1.64.serp..1.3. 251.lHoR62yiemQ – TylerH

ответ

0

Вот способ сделать это с JQuery и data-href элементы

See this fiddle

$(function(){ 
    $(".list-inline a").click(function(){ 
     hrefId = $(this).data('href'); 
    $('.itineraryPanelItem').slideUp(); 
     if($(hrefId).is(':visible')){ 
     $(hrefId).slideUp(); 
    }else{ 
     $('.itineraryPanel').show(); 
     $(hrefId).slideDown(); 
    }  
    }); 
}); 

EDIT С кратным контентом вы должны использовать class вместо id

See this updated fiddle

$(function(){ 
    $(".list-inline a").click(function(){ 
     hrefClass = $(this).data('href'); 
    $(this).parents('.singleFlights').find('.itineraryPanelItem').slideUp(); 
     if($(this).parents('.singleFlights').find($(hrefClass)).is(':visible')){ 
     $(this).parents('.singleFlights').find(hrefClass).slideUp(); 
    }else{ 
     $(this).parents('.singleFlights').find('.itineraryPanel').show(); 
     $(this).parents('.singleFlights').find(hrefClass).slideDown(); 
    }  
    }); 
}); 
+0

Спасибо Vincent G, но не так. –

+0

см. Пример, нажмите на любой рейс itineary или правило тарифа после hover -http: //www.cleartrip.com/flights/results? From = CCU & to = BOM & Depart_date = 26/05/2016 & adult = 1 & childs = 0 & infants = 0 & class = Economy & airlines = & carrier = & intl = n & sd = 1459541681089 & page = загружен –

+0

У меня есть обновленный код. Live - http://45.114.142.104/design//test/cloud/flight-listing-1-n.html –

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

  • Нет связанных вопросов^_^