我有一个用HTML制作的菜单,使用一个带有大量LI的简单UL。每个项目都包含与“主”类相关的链接。当列表项(列表项中的任何位置 - 不仅仅是文本)被点击时,jquery检查项目是否包含类“primary”的链接,如果是,则将指定的页面加载到隐藏的div中尽管其实际上不是临时的,但是仍然称为临时的),然后提取新页面的某些部分以设置为可见页面的部分的html。例如,它需要“.temp。内容”并将其放在“.content”中。它基本上提取html,将“.temp”的html设置为空(否则行$(“。content”)。html(newhtml);将在临时div中设置“.content”的html),然后将原始内容div的html设置为newhtml。JQuery .html()问题
但是我有一个小问题。它似乎有时会让div变为空白,有时需要两次点击来加载页面,有时我可以点击项目1,然后点击项目2,它立即加载项目1中的内容(即内容中显示的内容按项目1加载的页面的div)。
其实我可以做一个 “产业链” - 点击项目1,2,3,4,然后1和2再次和我看到的空白,对,4个项目1,2,3和1
内容有没有人有任何线索,这是怎么回事?
非常感谢提前。
问候,
理查德
在回答彼得Ajtai(我曾试图缩短尽可能 - 它实际上是比这要复杂得多,因为我有一个3栏布局和修复,使所有3列阴影,以相同的高度 - 但我认为所有的基本的东西在这里)...
页的基本结构:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html xmlns="http://www.w3.org/1999/xhtml">
<head>
//jquery includes
$("li").click(function() {
var url = $(this).find("a.primary").attr("href");
if (url != "" && url != null) {
$(".temp").load(url);
var newhtml = $(".temp .content").html();
$(".temp").html("");
$(".main-col").html(newhtml);
}
});
</head>
<body>
<div class="wrapper">
<div class="leftmenu">//left menu stuff here, in the following format:
<ul>
<li class="header">Content Management List</li>
<li><a class="primary" href="/Administration/List.aspx?subitem=range">Ranges</a></li>
<li><a class="primary" href="/Administration/List.aspx?subitem=collection">Collections</a></li>
</ul>
</div>
<div class="content"></div>
<div class="temp"></div>
</wrapper>
</body>
</html>
你能提供pertinenent HTML和jQuery?这样调试会更简单。 -----------你应该确保做的一件事只是将页面加载到'div'中一次。之后,简单地切换包含页面的'div'的可见性。 – 2010-09-26 04:40:04
我已将我的代码添加到问题中... – ClarkeyBoy 2010-09-26 05:00:09