2013-04-05 5 views
2

У меня есть много div с идентификаторами в одном классе. Как я покажу один и скрыть остальные? Вот идет мой HTML с 3 таких дивамиСкрыть и показать с помощью JQuery

<div class="build"> 
    <div id="slide1"> 
     <!--slide1 elements --> 
    </div> 
    <div id="slide2"> 
     <!--slide2 elements--> 
    </div> 
    <div id="slide3"> 
     <!--slide2 elements--> 
    </div> 
</div> 

Это то, что ив пытался с JS:

if (exp_id == "a_exp1") { 
    new_exp_id = exp_id; 

    $("#right").html("<div><img id='myimage1' onclick='changeimage1()' src='images/build_i.png'/>") 
} 

function changeimage1() { 
    for (var n = 1; n <= 3; n++) { 
     if (new_exp_id == "a_exp" + n) { 


      $('.build').hide(); 
      $('.build').find('#slide' + n).show(); 
     } 
    } 
} 

Так что, если его a_exp1, она должна соответствовать Slide1, если его a_exp2, она должна соответствовать для слайда2 и так далее.

Мне нужно показать один div и скрыть все остальное. Как мне это сделать? Я спрятал весь класс в начале моего HTML.

+0

когда вы скрываете родитель, вы не можете видеть его ребенка не даже если вы установите 'дисплей: блок important' –

+0

использовать JQuery виджет? http://jqueryui.com/accordion/ – jgreen

+0

Вы пытались: '$ ('. build'). children ('div'). click (function() {$ (this) .show(). siblings.hide ();}); –

ответ

0

Я хотел бы подойти к нему с помощью метода «скрыть все, показать один», который позволяет не заботиться, который один как было показано ранее, только тот, который вы хотите, чтобы показать:

function showSlide(currentSlide) { 
    $(".build").children().hide(); 
    $("#slide" + currentSlide).show(); 
} 

Тогда вы можете просто showSlide(1) и тебе хорошо идти.

+0

Спасибо, я тоже это пробовал! –

0
$(document).ready (function() { 
    $(".build div").click(function() { 
     $(this).siblings().hide().end().show(); 
    }); 
}); 
4
$('.build').children('div').click(function() 
{ 
    $(this).show().siblings().hide(); 
}); 
+0

Я не уверен, что здесь делает эта функция щелчка? –

+0

Спасибо в любом случае !, плохо попробуйте и используйте это! –

2

обеспечивает все ДИВ тот же класс скажет «.chat», а затем скрыть все DIV с классом «.chat» и показать тот, который вы хотите, чтобы показать экс

<div id="slide1" class="chat"> 
<div id="slide2" class="chat"> 
<div id="slide3" class="chat"> 

и теперь, если вы хотите, чтобы показать DIV с идентификатором slide3 вы можете сделать что-то вроде этого

$('.chat').hide(); 
$('#slide3').show(); 

и если вы используете у мыши событие, чтобы показать и скрыть материал затем работать с живой мыши вместо того, чтобы просто нажмите

$('#somebutton').live("click",function(){ 
    $('.chat').hide(); 
$('#slide3').show(); 
}); 
Смежные вопросы