jquery fadetoggle на нескольких делениях

0

теперь я читаю все статьи fadeToggle, но не могу заставить его работать:

Я выбираю разные divs (para1, para 2 и т.д.) Путем переключения (с помощью css.hidden {display: none;}) при выпадающем меню, и он отлично работает. Но я хочу постепенно сгладить divs. Как только я изменяю.toggle на.fadeToggle (или fadeIn), вывод полностью перепутан.

Кто-нибудь знает, почему и что я делаю неправильно?

Html:

<div id="dropdown">
<select id="tables" name="tables[]" onchange="changeHandler()">
<option value="defcont" selected>Select some content</option>
<option value="cont1">Content 1</option>
<option value="cont2">Content 2</option>
<option value="cont3">Content 3</option>
</select>
</div><!-- DROPDOWN -->


<div id="paragraphs">
<div id="paradefault">This is the default content without selection</div>
<div id="para1" class="hidden">You see now content 1.</div>
<div id="para2" class="hidden">You see now content 2.</div>
<div id="para3" class="hidden">You see now content 3?.</div>
</div><!-- paragraphs -->

Сценарий:

<script type="text/javascript">
$('#tables').change(function(e){
$('#paradefault').toggle($('option[value="defcont"]:selected',this).length > 0);
$('#para1').toggle($('option[value="cont1"]:selected',this).length > 0);
$('#para2').toggle($('option[value="cont2"]:selected',this).length > 0);
$('#para3').toggle($('option[value="cont3"]:selected',this).length > 0);
});
</script>

Самая близкая статья: "fadeToggle" несколько тегов Div в раскрывающемся меню - но просто с переключением, а не с dafeToggle.

Любая помощь очень ценится!

  • 0
    Вы хотите переключить исчезновение для всех их одновременно или только один за другим?
  • 0
    По одному. Когда я опускаюсь на cont2, параграф 2 должен исчезнуть. Это работает, бутон не исчезает. Когда я изменяю -toggle на .fadeToggle, он показывает мне все остальные абзацы в странном соединении :)
Показать ещё 1 комментарий
Теги:
toggle

1 ответ

0
Лучший ответ

Хм... это то, что вы ищете? http://jsfiddle.net/itsmikem/uvT76/ Мне нужно было бы исправить "прыткость", но, возможно, это на правильном пути.

HTML:

<div id="dropdown">
    <select id="tables" name="tables[]" onchange="changeHandler()">
        <option value="defcont" selected>Select some content</option>
        <option value="cont1">Content 1</option>
        <option value="cont2">Content 2</option>
        <option value="cont3">Content 3</option>
    </select>
</div>
<p></p>
<div id="paragraphs">
    <div id="paraDefault">This is the default content without selection</div>
    <div id="para_1" class="hidden">You see now content 1.</div>
    <div id="para_2" class="hidden">You see now content 2.</div>
    <div id="para_3" class="hidden">You see now content 3.</div>
</div>

ЯШ:

var opts = $("#tables option");
$('#tables').on("change", fader);

function fader(e) {
    switch (e.target.value) {
        case ("defcont"):
            var others = String("#paragraphs div[id^='para_']");
            $(others).each(function () {
                $(this).fadeTo(250, 0);
            });
            $(others).promise().done(function () {
                $(others).css("display", "none");
                $("#paraDefault").fadeTo(1000, 1);
            });
            break;
        default:
            var showPara = String("para_" + e.target.value.substr(e.target.value.length - 1));
           // alert(showPara);
            var sel = String("#paragraphs div[id!=" + showPara + "]");
            $(sel).each(function () {
                $(this).fadeTo(250, 0);
            });
            $(sel).promise().done(function () {
                $(sel).css("display", "none");
                $(String("#" + showPara)).fadeTo(1000, 1);
            });
    }
}

CSS:

div[id^='para_'] {
    display:none;
}
#dropdown {
    margin-bottom:100px;
}
  • 0
    Как это круто! Спасибо точно! Очень ценится!
  • 0
    Рад, что тебе нравится, Крис. Если вы хотите, чтобы я исправил вашу нервозность, дайте мне знать, и я буду рад. Если это решит вашу проблему, я был бы признателен, если бы вы щелкнули галочку рядом с ответом. :-)
Показать ещё 2 комментария

Ещё вопросы

Сообщество Overcoder
Наверх
Меню