0
我使用jQuery ajax將數據庫中的內容加載到頁面中。我有多個div的內容,但只想一次查看一個div。在頁面上使用.detach()和多個ajax元素
我已經成功地從DOM分離的元素,但我不知道如何管理多個div,以便一次只有1個div顯示(而其他人保持分離)。
下面是我的代碼,這裏是一個小提琴:http://jsfiddle.net/XkzUK/
HTML:
<nav>
<ul id="site-nav">
<li class="nav1"><a href="#recent">Recent</a></li>
<li class="nav2"><a href="#highlights">Highlights</a></li>
</ul>
</nav>
<div id="content-listing">
<div id="recent">
<ul class="top-level">
</ul>
</div><!--end recent-->
<div id="highlights">
<ul class="top-level">
</ul>
</div><!--end highlights-->
</div><!--end content-listing-->
JS:
var test; var test2
//Recent $("#site-nav .nav1").on("click", function (event) {
$("#site-nav li a").parents().removeClass("nav-active");
$(this).addClass("nav-active");
if(typeof test === 'undefined') {
test = $("#recent ul.top-level").load('/echo/html/', { html: '<li>1</li> <li>2</li> <li>3</li>' }, function() {
//$(this).show().siblings().detach();
alert("I'm new");
});
} else {
test.appendTo("#content-listing");
alert("I'm old");
}
event.preventDefault(); });
//Highlights $("#site-nav .nav2").on("click", function(event) {
//test = $("#recent").detach();
$("#site-nav li a").parents().removeClass("nav-active");
$(this).addClass("nav-active");
if(typeof test2 === 'undefined') {
test2 = $("#highlights ul.top-level").load('/echo/html/', { html: '<li>Apples</li> <li>Oranges</li> <li>Pears</li>' }, function() {
//$(this).show().siblings().detach();
alert("I'm new");
});
} else {
test2.appendTo("#content-listing");
alert("I'm old");
}
event.preventDefault(); });
CSS:
.nav-active,.nav-active a{background-color:#fff;color:#e84182 !important;outline:none;}
.sub-active,.sub-active a{background-color:#fff;color:#e84182 !important;border:dotted 1px pink;border-width:1px 0 ;margin:-1px 0;outline:none;/*background:url(/assets/img/icon-branch.png) 2% 5px no-repeat #fff;*/}
#content-listing{background-color:#ea528d;}/*230px*/
#content-listing ul.top-level ul li{margin-left:5.882352941176%}
#content-listing li a{font-size:.8125em;line-height:1em;text-decoration:none;padding:2px 0;display:block;text-indent:2.678571428571%;outline:none;}
.visited{color:#ccc;}
#content-listing ul{z-index:4;position:relative;}/*230px*/
#content-listing ul.top-level{margin-top:5.3125em/*85px*/;}
#content-listing ul.top-level ul li{margin-left:6.521739130435%;}
#content-listing{width:29.113924050633%;float:left;padding-bottom:20010px;margin-bottom: -20000px;}
#content-listing li a{text-indent:6.521739130435%;/*15px*/}
而且的jsfiddle:http://jsfiddle.net/XkzUK/
感謝,那種作品,而不是最初的點擊。您會注意到,第一次點擊時,兩個標籤都會出現,但在連續點擊後會消失:http://jsfiddle.net/XkzUK/1/。另外,jQuery UI選項卡使用detach()?換句話說,jQuery UI選項卡會重新加載數據庫中的內容嗎?這正是我想要避免的。 – Yahreen
JQuery Ui選項卡使用display = none來隱藏選項卡,這很好。它不會每次都重新創建標籤。你有很多選擇,只是瀏覽演示。至於初始化,我更新了我的答案和你的小提琴 –
謝謝,這很好。如果我想再添加2個選項卡,那麼我如何使用您的修改代碼來管理它?如在這裏:http://jsfiddle.net/XkzUK/3/ – Yahreen