UL 切换开关在 FF 中工作,而不是在 IE 7 中工作

UL toggle working in FF and not in IE 7

提问人:Omnia9 提问时间:10/13/2010 更新时间:10/13/2010 访问量:160

问:

我有一个列表,可以在 FF 中毫无问题地切换。我需要这个工作的IE才能为生产做好准备。

似乎 (IE) 仅将 js 应用于第一个 #orderItem 和第一个 #familiy。列表中的其余项将被忽略。

任何帮助都会很棒。

一段 HTML(大列表):

<div class="classificationContainer">

        <ul class="classification" id="orderUL">

        <li id="orderItem" class="ordrheading">
            <div class="order">

                <a href="?nav=search_recherche&amp;lang=en">

  <img src="http://dev.ncr.ec.gc.ca/publications/bba-aob/images/node_closedc.gif" alt="By Classification" id="OrdListImage" />

                    Apodiformes (Swifts and Hummingbirds)
                </a>
            </div>

                    <ul class="classification" id="FamilyList">

                    <li id="familiy">
                        <div class="family">
                            <a href="?nav=search_recherche&amp;lang=en">


  <img src="http://dev.ncr.ec.gc.ca/publications/bba-aob/images/node_closedc.gif" alt="Family" id="FamListImage" />

                                Apodidae (Swifts)
                            </a>
                        </div>

                                <ul class="classification" id="SpiecesList">

                                <li>
                                    <img src="http://dev.ncr.ec.gc.ca/publications/bba-aob/images/node_leafc.gif" alt="Species" />
                                    <a href="?lang=en&amp;nav=bird_oiseaux&amp;aou=423"> Chimney Swift (Chaetura pelagica) </a>

                                </li>

                                </ul>

                    </li>

                    <li id="familiy">
                        <div class="family">
                            <a href="?nav=search_recherche&amp;lang=en">

  <img src="http://dev.ncr.ec.gc.ca/publications/bba-aob/images/node_closedc.gif" alt="Family" id="FamListImage" />

                                Trochilidae (Hummingbirds)
                            </a>

                        </div>

                                <ul class="classification" id="SpiecesList">

                                <li>
                                    <img src="http://dev.ncr.ec.gc.ca/publications/bba-aob/images/node_leafc.gif" alt="Species" />
                                    <a href="?lang=en&amp;nav=bird_oiseaux&amp;aou=428"> Ruby throated Hummingbird (Archilochus colubris) </a>
                                </li>

                                <li>
                                    <img src="http://dev.ncr.ec.gc.ca/publications/bba-aob/images/node_leafc.gif" alt="Species" />

                                    <a href="?lang=en&amp;nav=bird_oiseaux&amp;aou=433"> Rufous Hummingbird (Selasphorus rufus) </a>
                                </li>

                                </ul>

                    </li>

                    </ul>

        </li></ul></div>

我有以下jquery函数:

<script type="text/javascript">
    $(document).ready(function () {
    // toggle action for the order to familiy
    $("li#orderItem").click(function (event) {
        // toggle the image
        var src = ($("#OrdListImage", this).attr("src") == "/images/node_closedc.gif")
                ? "/images/node_openc.gif"
                : "/images/node_closedc.gif";
        $("img#OrdListImage", this).attr("src", src);

        //toggle the ul
        $('ul#FamilyList', this).toggle($('ul#FamilyList', this).css('display') == 'none');

        // stop all link actions
        return false;
    });

    //toggle action from familiy to speices
    $("li#familiy").click(function () {
        // toggle the image
        var src = ($("#FamListImage", this).attr("src") == "/images/node_closedc.gif")
                ? "/images/node_openc.gif"
                : "/images/node_closedc.gif";
        $("img#FamListImage", this).attr("src", src);            
        //toggle the ul
        $('ul#SpiecesList', this).toggle($('ul#SpiecesList', this).css('display') == 'none');

        // stop all link actions
        return false;
    });


});

C# .NET jQuery 不显眼的 JavaScript

评论


答:

0赞 thomaux 10/13/2010 #1

jQuery提供的切换功能不保证有效。我丢失了阅读本文的参考资料(在jQuery的主页上)。我遇到了同样的问题,并且(正如jQuery所建议的那样)实现了我自己的切换功能。我建议尝试一下,因为它不多工作,可以为您提供解决方案。

1赞 egis 10/13/2010 #2

还要检查id是否不重复(只有一个 #orderItem,只有一个 #familiy 等)。“id”属性在html文档中必须是唯一的,“class”可以重复。

评论

0赞 Omnia9 10/13/2010
就是这样。我将jquery更改为以下内容: $(“li[id*='orderItem']”) $(“li[id*='familiy']”) 这样它就找到了所有 id。我正在使用嵌套的中继器来生成列表。因此,id 并不总是唯一的。
0赞 egis 10/14/2010
“id”的目的是唯一的。如果您的 html 包含多个相同值的“id”,请使用“class”。好吧,如果你希望你的html是w3c有效的:)
0赞 Omnia9 10/19/2010
我改为更改了对元素类的引用。