【问题标题】:jquery fadetoggle on multiple divsjquery fadetoggle 在多个 div 上
【发布时间】:2013-11-11 02:25:17
【问题描述】:

现在我阅读了所有 fadeToggle 文章,但无法正常工作:

我通过切换(使用 css .hidden {display: none;})通过下拉菜单选择不同的 div(para1、para 2 等),并且效果很好。但我想淡化 div

有人知道我为什么做错了吗?

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' multiple div tags via drop down menu - 但只有切换而不是 dafeToggle。

非常感谢任何帮助!

【问题讨论】:

  • 您想同时为所有这些切换淡入淡出还是一个一个切换?
  • 一个一个。当我在 cont2 上下拉时,第 2 段应该淡入。它的工作原理不会褪色。当我将 -toggle 更改为 .fadeToggle 时,它​​会以一种奇怪的方式向我显示所有其他段落 :)
  • jsfidle 在这里:jsfiddle.net/nRxq5/10

标签: javascript jquery toggle


【解决方案1】:

嗯...这就是您要找的东西吗? 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>

js:

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;
}

【讨论】:

  • 很高兴你喜欢它,克里斯。如果你想让我为你解决跳动问题,请告诉我,我会很乐意的。如果它解决了您的问题,如果您单击答案旁边的检查,我将不胜感激。 :-)
  • @itsmikem 跳动的解决方法是什么?
  • @Drai 我得回去检查我的代码。我可能还需要一点时间......
猜你喜欢
  • 2019-09-09
  • 1970-01-01
  • 2013-11-24
  • 1970-01-01
  • 2012-06-07
  • 1970-01-01
  • 1970-01-01
  • 2013-04-09
  • 1970-01-01
相关资源
最近更新 更多