2014-09-15 2 views
0

Я хотел бы скрыть и показать div (jQuery toggle()). Это пример моего кода:Скрыть и показать несколько раз div

<script src="http://ajax.googleapis.com/ajax/libs/jquery/1.11.1/jquery.min.js"></script> 
<script> 
    $("a").click(function() { 
     var myelement = $(this).attr("href"); 
     $(myelement).slideToggle("slow"); 
     $(".toggle:visible").not(myelement).hide(500);  
    }); 
</script> 

    <h2><a href="#box1"> Programming</a></h2> 

    <div id="box1" class = "block-content" style="display:none"> 
    box 1 
    </div> 

    <h2><a href="#box2"> software</a></h2> 

    <div id="box2" class = "block-content" style="display:none"> 
    box 2 
    </div> 

Это не работает, и Firebug не показывает мне сообщение об ошибке.

Вы можете мне помочь?

+0

Вы просто отсутствует ',' ' – Dan

+0

;' не являются обязательными –

+0

@Dan: Точка с запятой не требуется. Однако скрипт ищет элементы с классом «toggle», которых нет в образце HTML. –

ответ

1

Демо: http://jsfiddle.net/xyzpq44x/

остальные должны помочь :)

попробовать этот

$("a").click(function (e) { 
    e.preventDefault(); 
    var myelement = $(this).attr("href") 
    $(myelement).slideToggle("slow"); 
    $(".toggle:visible").not(myelement).hide(500); 

}); 
+0

Спасибо, он работает, я сделал много глупых ошибок – foboss

+0

@foboss все хорошо, с ошибками вы узнаете! рад, что это помогло. –

1

Когда скрипт запускается, теги еще не присутствуют на странице!

Поместите свой скрипт под элементами html или используйте готовый документ или его эквивалент, чтобы отложить выполнение скрипта.

1
$(".toggle:visible").not(myelement).hide(500); 

заменить ".toggle: видимый" с "DIV"

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