Переключатель / переключение div (jquery) - PullRequest
17 голосов
/ 15 апреля 2009

Я хочу выполнить довольно простую задачу (надеюсь!)

У меня есть два тега div и 1 тег привязки, например:

<a href="javascript:void(0);">forgot password?</a>
<div id="login-form"></div>
<div id="recover-password" style="display:none;"></div>

Что я хочу сделать, это использовать тег привязки для переключения между двумя тегами div, скрывать один и показывать другой, и наоборот

Как это можно сделать наилучшим образом?

С уважением.

Ответы [ 9 ]

40 голосов
/ 15 апреля 2009

Поскольку один div изначально скрыт, вы можете просто вызвать toggle для обоих div:

<a href="javascript:void(0);" id="forgot-password">forgot password?</a>
<div id="login-form">login form</div>

<div id="recover-password" style="display:none;">recover password</div>

<script type="text/javascript">
$(function(){
  $('#forgot-password').click(function(){
     $('#login-form').toggle();
     $('#recover-password').toggle(); 
  });
});
</script>
4 голосов
/ 15 апреля 2009

Я думаю, вы хотите это:

$('#recover-password').show();

или

$('#recover-password').toggle();

Это стало возможным благодаря JQuery

Надеюсь, это поможет ...

1 голос
/ 15 апреля 2009

Как насчет этого

<script type="text/javascript" language="javascript">
    $("#toggle").click(function() { $("#login-form, #recover-password").toggle(); });
</script>

Для вашего HTML выглядит как:

<a id="toggle" href="javascript:void(0);">forgot password?</a>
<div id="login-form"></div>
<div id="recover-password" style="display:none;"></div>

Эй, хорошо! Одна линия! Я <3 JQuery. </p>

0 голосов
/ 18 октября 2017
function toggling_fields_contact_bank(class_name) {
            jQuery("." + class_name).animate({
                height: 'toggle'
            });
        }
0 голосов
/ 30 апреля 2014

Вот как я переключаю два div одновременно:

$('#login-form, #recover-password').toggle();

это работает!

0 голосов
/ 17 марта 2014

Я использовал этот способ для нескольких блоков, не создавая новый javascript:

<a href="#" data-toggle="thatblock">Show/Hide Content</a>

<div id="thatblock" style="display: none">
  Here is some description that will appear when we click on the button
</div>

Тогда js порция для всех таких случаев:

$(function() {
  $('*[data-toggle]').click(function() {
    $('#'+$(this).attr('data-toggle')).toggle();
    return false;
  });
});

Описано здесь

0 голосов
/ 23 сентября 2011
0 голосов
/ 14 апреля 2011

Я думаю, что это работает

$(document).ready(function(){

    //Hide (Collapse) the toggle containers on load
    $(".toggle_container").hide(); 

    //Switch the "Open" and "Close" state per click then slide up/down (depending on open/close state)
    $("h2.trigger").click(function(){
        $(this).toggleClass("active").next().slideToggle("slow");
        return false; //Prevent the browser jump to the link anchor
    });

});
0 голосов
/ 15 апреля 2009

Вы можете написать простой плагин jQuery для этого. Плагин будет выглядеть так:

(function($) {
$.fn.expandcollapse = function() {
    return this.each(function() {
        obj = $(this);
        switch (obj.css("display")) {
            case "block":
                displayValue = "none";
                break;

            case "none":                    
            default:
                displayValue = "block";
        }

        obj.css("display", displayValue);
    });
};

} (jQuery));

Затем подключите плагин к событию click для тега привязки:

$(document).ready(function() {
    $("#mylink").click(function() {
        $("div").expandcollapse();
    });
});

При условии, что вы установили начальные атрибуты 'display' для каждого div как 'block' и 'none' соответственно, они должны переключаться на отображение / скрытие при нажатии на ссылку.

...