我有一个ul,隐藏列表元素处于默认状态:
$(function () {
$("li.closed > ul").hide();
});
单击我显示隐藏列表元素并切换。
$("ul > li.closed").click(function () {
var li = $(this).closest('li');
li.find(' > ul').slideToggle('fast');
$(this).toggleClass("closed open");
});
一切都很好。但当我访问另一个页面并返回到我之前的页面时,切换功能不再起作用 - 当我点击它们切换出来并立即切换回来时。
我在div中加载我的链接:
$(".link").click(function (e) {
// Prevent the default action of the event
e.preventDefault();
var linkHref = this.id + '.html';
$("#content").load(linkHref);
$("#nav a.active").toggleClass('inactive active');
$(this).addClass("active").removeClass('inactive');
});
因此我的html页面只存在于body部分,我每次都在加载global.js,这可能是一个问题(有类似的缓存或其他东西)?像这样:
<script src="js/global.js" type="text/javascript"></script>
<article>
<ul>
<li class="closed">Headline
<ul>
<li class="fl"><a href="#"><img src="x.png"></a></li>
<li class="fl"><a href="#"><img src="x.png"></a></li>
</ul>
</li>
</ul>
</article>
答案 0 :(得分:2)
而不是这个 -
$(function () {
$("li.closed > ul").hide();
});
删除上面的jQuery代码并将其插入到CSS中
li.closed > ul {
display:none;
}