2014-10-22 8 views
0

Я пытался скрыть и показать div с помощью javascript на моем сайте. Но я хочу, чтобы она была скрыта по умолчанию и была способна показать и скрыть ее при нажатии. Мой код выглядит нормально, и когда я нажимаю кнопку, дисплей: none; превращается в дисплей: block; но ДИВ не показывает ...Скрыть div и показать onclick с помощью js

Вот HTML-

<div class="col-lg-8 col-lg-offset-2 text-center"> 
    <button href="#collapse1" class="nav-toggle">Show</button> 
</div> 

<div class="col-md-3 col-sm-4 col-xs-12 portfolio-item" id="collapse1" style="display:none"> 
    <img src="img/myimage.jpg" class="img-responsive" /> 
</div> 

Вот JS

// Show or hides div 
$(document).ready(function() { 
    $('.nav-toggle').click(function(){ 
     //get collapse content selector 
     var collapse_content_selector = $(this).attr('href');     

     //make the collapse content to be shown or hide 
     var toggle_switch = $(this); 
     $(collapse_content_selector).toggle(function(){ 
      if($(this).css('display')=='none'){ 
       //change the button label to be 'Show' 
       toggle_switch.html('Show'); 
      }else{ 
       //change the button label to be 'Hide' 
       toggle_switch.html('Hide'); 
      } 
     }); 
    }); 

}); 

And here's the example on my website

+2

'если ($ (это) .css ('дисплей') == 'ни')' может быть лучше записать в виде 'если ($ (это) .а (': скрытый ')) ' – amphetamachine

+2

Кажется, здесь работает http://jsfiddle.net/j08691/n7dtmzyd/. И вы можете сконденсировать его только на http://jsfiddle.net/j08691/4je77foe/. Кроме того, href не является допустимым атрибутом для элементов кнопки. Вместо этого вы можете использовать атрибут пользовательских данных, хотя 'data-href =" # collapse1 "' – j08691

+0

Даже на вашем сайте, похоже, работает –

ответ

0

Я проверил свой сайт, и я вижу, что он изменяет состояние от кнопки «Показать/скрыть» на кнопке, а также удалить стиль или добавить его в div, который скрыт, но, однако, ширина и высота изображения равны 0 ...

Возможно, так?

<img src="http://iampox.com/img/portfolio/[email protected]" class="img-responsive" alt="Visuel JPO ESTEN 2014" width="100%" height="100%" /> 

И здесь упрощено JS скрипку, так как вы просили «как показать/скрыть DIV» в вашем вопросе, так что я использовал кнопку и скрытое содержание только для образца демо. Возможно, вы можете свести свой сценарий к чему-то подобному.

JS Fiddle Sample

$('#btn').on('click', function() { 
    var btnText = ($(this).text() == 'Show') ? 'Hide' : 'Show'; 

    $(this).text(btnText); 
    $('#content').toggle(); 
}); 
+0

Спасибо за ваш ответ, но ширина и высота изображения четко определены (width = "360" height = "260") Я просто забыл вставить их в мой вопрос. – POX

+0

Извините за поздний ответ. Я видел, что ширина и высота вашего изображения внутри «скрытого» контейнера - «w: 0; ч: 0'. Теперь я не могу проверить снова, потому что вы удалили это с веб-сайта. Но, по крайней мере, это была единственная проблема, которую я заметил для того, чтобы не показывать скрытый контент из скрытого контейнера после нажатия кнопки. – dvLden

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