我試圖導航通過無序列表,並有麻煩使其完全工作。導航到無序列表中的上一級列表元素
有4個按鈕 - 截至,向下,左,並右。使用向上導航或向下導航將正確帶您前往或下一個<li>
(垂直)在該級別(如果存在)。導航右會帶您到<ul>
(在一個級別)內的第一個列表項,如果<ul>
存在。
左邊的按鈕基本上應該顛倒這個順序(上升一層),但它不。
這裏是我的代碼:
CSS
<style>
.btn { margin: 10px; padding: 10px; background-color: #999; cursor: pointer; display: inline-block; }
.current > span { color: red; font-weight: bold; }
</style>
HTML
<div class="left btn">Left</div>
<div class="right btn">Right</div>
<div class="up btn">Up</div>
<div class="down btn">Down</div>
<ul id="demo01">
<li class="current"><span>one</span></li>
<li><span>two</span></li>
<li><span>three</span>
<ul>
<li><span>four</span></li>
<li><span>five</span></li>
<li><span>six</span>
<ul>
<li><span>seven</span></li>
<li><span>eight</span></li>
</ul>
</li>
</ul>
</li>
<li><span>nine</span></li>
</ul>
JS/JQuery的
<script>
(function($) {
$(document).on('click','.right', function() {
var current = $('#demo01 li.current');
if(current.has("ul").length){
right = current.find('li').first();
current.removeClass('current');
right.addClass('current');
}
});
$(document).on('click','.left', function() {
var current = $('#demo01 li.current');
if(current.parent.has('ul').length) {
left = current.parent('ul li');
current.removeClass('current');
left.addClass('current');
}
});
$(document).on('click','.up', function() {
var current = $('#demo01 li.current');
if(current.prev('li').length) {
up = current.prev('li');
current.removeClass('current');
up.addClass('current');
}
});
$(document).on('click','.down', function() {
var current = $('#demo01 li.current');
if(current.next('li').length) {
down = current.next('li');
current.removeClass('current');
down.addClass('current');
}
});
}(jQuery));
</script>
當前的功能級別:
使用向上和右按鈕,就可以成功地瀏覽到 「八」。期望的是,當你點擊Left按鈕,回到頂端,你會去「六」(不是「四」),然後是「三」(而不是「一」)。現在,我什麼都沒有。
我以爲使用parent()
jQuery函數是要走的路,但我必須寫錯了。
我想每一次我通過點擊,我可以添加/刪除一個類(「最後一遊」),並在「迴歸」上做一個發現。我想先知道我在編寫的代碼中做了什麼錯誤。
如果有人能指出我正確的方向,我會很感激。
我不能得到任何按鈕的工作:http://jsfiddle.net/go0yjoae/ – DinoMyte
@DinoMyte你在結尾處遺漏了'}'。請參閱http://jsfiddle.net/gqxtrLgj/。 –
你錯過了.parent()上的()http://jsfiddle.net/kennygfunk/35m67tjq/ – unclejam