【问题标题】:jquery code does not work in IE?jquery代码在IE中不起作用?
【发布时间】:2012-09-20 11:02:52
【问题描述】:

我在 jquery 中有这段代码,可以在单击按钮时将 div 隐藏在另一个 div 中,它适用于 firefox 和 chrome 但不适用于 IE9:

$(document).ready(function () {
        $("#esconde, #Div1, #Div2").hide();
        $("#act2").click(function () {
            $("#esconde").fadeIn(1000).show().append($("#lista1"));
            $("#listadefault").remove().fadeOut(500);

            $("#act3").click(function () {
                $("#listadefault").remove();
                $("#Div1").fadeIn(1000).show().append($("#lista1"));

                $("#act4").click(function () {
                    $("#Div2").fadeIn(1000).show().append($("#lista1"));
                    $("#listadefault").remove().fadeOut(500);
                });

            });
        });

这是html:

<div id="Div1" class="span12">
    <table class="well table table-condensed">
        <label>tabela 3</label>
                <thead>
                    <tr>
                        <th>Opção 1</th>
                        <th>Opção 2</th>
                        <th>Opção 3</th>
                    </tr>    

                </thead>
                <tbody>
                    <tr><td>Dado 1</td><td>Dado 2</td><td>
                        <div class="btn-group" data-toggle="buttons-checkbox">
                            <button type="button" class="btn btn-primary">
                                dado1</button>
                        </div>
                    </td>
                    </tr>
                    <tr><td>Dado 1</td><td>Dado 2</td><td><div class="btn-group" data-toggle="buttons-checkbox">
                            <button type="button" class="btn btn-primary">
                                dado1</button>
                        </div></td></tr>
                    <tr><td>Dado 1</td><td>Dado 2</td><td><input type="button" data-toggle="buttons-checkbox" class="btn btn-primary" /></td></tr>
                    <tr><td>Dado 1</td><td>Dado 2</td><td><input type="checkbox" /></td></tr>
                </tbody>


            </table>
    </div>

上面的这个 div 应该出现在 #lista1 div 中。

【问题讨论】:

  • 您有任何错误吗?检查控制台
  • 你能在jsfiddle提供一个演示吗?

标签: jquery internet-explorer-9


【解决方案1】:

您将所有点击事件都包含在彼此内部:

试试这个:

$(document).ready(function () {
        $("#esconde, #Div1, #Div2").hide();
        $("#act2").click(function () {
            $("#esconde").fadeIn(1000).show().append($("#lista1"));
            $("#listadefault").remove().fadeOut(500);
        });

            $("#act3").click(function () {
                $("#listadefault").remove();
                $("#Div1").fadeIn(1000).show().append($("#lista1"));
            });
                $("#act4").click(function () {
                    $("#Div2").fadeIn(1000).show().append($("#lista1"));
                    $("#listadefault").remove().fadeOut(500);
        });
  });

【讨论】:

    【解决方案2】:

    我知道这与您的问题没有任何关系,但是在查看您的 javascript 之后,我不能不注意到您正在对没有太大意义的元素执行一些操作。我的 cmets 是内联的:

        $(document).ready(function () {
            $("#esconde, #Div1, #Div2").hide();
            $("#act2").click(function () {
                $("#esconde").fadeIn(1000).show().append($("#lista1"));
                $("#listadefault").remove().fadeOut(500); // Fading out an element which is already removed
    
                // Attaching an event handler after a click event is handled.
                // This actually repeats every time you click and even if it's intentional you should perform .one() instead of click, so you don't bind multiple times
                $("#act3").click(function () {
                    $("#listadefault").remove();
                    $("#Div1").fadeIn(1000).show().append($("#lista1")); // Showing an element which is shows. FadeIn shows the element.
    
                    $("#act4").click(function () {
                        $("#Div2").fadeIn(1000).show().append($("#lista1")); // Same thing with fadeIn and show as the above comment.
                        $("#listadefault").remove().fadeOut(500); // Same thing with remove and fadeOut
                    });
    
                });
            });
    

    【讨论】:

    • thanx Konstantin Dinev 和 AboQutiesh,我忘了说我是 jquery 新手,没有很多经验。它现在可以工作了,但是我还有另一个问题,我嵌套了所有这些事件,所以它们从上到下工作,在使用它们之后,如果我尝试这样做,它就不再工作了,任何提示???
    猜你喜欢
    • 2011-05-05
    • 1970-01-01
    • 1970-01-01
    • 2013-12-15
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    • 1970-01-01
    相关资源
    最近更新 更多