我創建了一個非常好的jQuery菜單,當您選擇頂部的每個選項卡時,它會加載不同的內容。沒有使用data-id標籤的Jquery菜單
不過,我可以不再使用這些代碼中使用的「數據ID」的標籤,因爲這顯然與HTML淨化interfers。我知道這個問題有很多爭論,你應該被允許啓用某些標籤,但最終我無法使用這些標籤。
因此,我要感激我如何能重組此菜單,同時仍保持其外觀完好,但不使用數據ID標籤的一些輸入。
我還注意到,當您在jsfiddle中運行此代碼時,它會在顯示菜單項1的內容之前快速加載所有4個菜單項的內容(即,它會顯示一個列表 - 菜單內容1,菜單項內容2,菜單項目內容3和菜單項目內容4)。
在此先感謝
https://jsfiddle.net/m83ntmfz/
HTML
<div>
<ul id="listingmenu">
<li class="current"><a href="#!" data-id="div1">MENU ITEM 1</a></li>
<li><a href="#!" data-id="div2">MENU ITEM 2</a></li>
<li><a href="#!" data-id="div3">MENU ITEM 3</a></li>
<li><a href="#!" data-id="div4">MENU ITEM 4</a></li>
</ul><br><br>
<div class="pbox" id="div1">content for menu item 1</div>
<div class="pbox" id="div2">content for menu item 2</div>
<div class="pbox" id="div3">content for menu item 3</div>
<div class="pbox" id="div4">content for menu item 4</div>
</div>
的CSS
ul#listingmenu {
margin: 0;
padding: 0;
list-style-type: none;
text-align: center;
}
ul#listingmenu li {
position: relative;
float: left;
border-bottom: 3px solid #272e3b;
margin-right: 10px;
padding-right: 0px;
padding-bottom: 5px;
display: inline-block;
}
ul#listingmenu .current {
border-bottom: 3px solid #fe8f25;
}
ul#listingmenu li:hover {
border-bottom: 3px solid #fe8f25;
}
ul#listingmenu li a {
padding: 2px 2px;
text-decoration: none;
font: 12px Avenir, Arial, "Times New Roman", Times, serif;
color: #272e3b;
}
ul#listingmenu li a:hover {
color: #fe8f25;
border: none;
的JavaScript
$(document).ready(function() {
$('#listingmenu').on('click', 'a', function() {
$('.current').not($(this).closest('li').addClass('current')).removeClass('current');
// fade out all open subcontents
$('.pbox:visible').hide(600);
// fade in new selected subcontent
$('.pbox[id=' + $(this).attr('data-id') + ']').show(600);
}).find('a:first').click();
});
加$( 'PBOX。')切換()。在$(document).ready(function(){below下面加載事件 – cracker
下不會加載所有的子菜單如果你不想使用數據標識符,你可以使用元素索引。見我的回答[here](http: //stackoverflow.com/questions/32717071/jquery-menu-without-using-data-id-tags/32717469#32717469)與工作演示 –