提问人:Omnia9 提问时间:10/13/2010 更新时间:10/13/2010 访问量:160
UL 切换开关在 FF 中工作,而不是在 IE 7 中工作
UL toggle working in FF and not in IE 7
问:
我有一个列表,可以在 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&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&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&nav=bird_oiseaux&aou=423"> Chimney Swift (Chaetura pelagica) </a>
</li>
</ul>
</li>
<li id="familiy">
<div class="family">
<a href="?nav=search_recherche&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&nav=bird_oiseaux&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&nav=bird_oiseaux&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;
});
});
答:
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
我改为更改了对元素类的引用。
评论