2013-03-29 68 views
0
<li class="list "><a href="javascript:">A</a> 

    <ul class="names"> 
     <li class="list"><a href="javascript:">1</a> 
     </li> 
     <li class="list"><a href="javascript:">2</a> 
     </li> 
    </ul> 
</li> 
<li class="list "><a href="javascript:">B</a> 

    <ul class="names selected"> 
     <li class="list selected"><a href="javascript:">1</a> 
     </li> 
     <li class="list"><a href="javascript:">2</a> 
     </li> 
     <li class="list"><a href="javascript:">3</a> 
     </li> 
     <li class="list"><a href="javascript:">4</a> 
     </li> 
    </ul> 
</li> 
<li class="list "><a href="javascript:">C</a> 

    <ul class="names"> 
     <li class="list"><a href="javascript:">1</a> 
     </li> 
     <li class="list"><a href="javascript:">2</a> 
     </li> 
     <li class="list"><a href="javascript:">3</a> 
     </li> 
     <li class="list"><a href="javascript:">4</a> 
     </li> 
    </ul> 
</li> 

    $('.list').click(function() { 
     var that = this; 
     $('.list').each(function() { 
      if (that == this) return true; //continue 
      $('.names:not(:hidden)', this).slideToggle(); 
     }); 
     $('ul.names', this).slideToggle(); 
    }) 
ul.names{display: none;} 
li.list{ 
    width:150px; 
     background:#A9FF7A; 
} 
ul.names { 
    width:150px; 
    background:#A9FF7A; 
} 
ul.selected{ 
    display: block; 
} 
li.selected{ 
    background:red; 
} 

在線樣本:http://jsfiddle.net/gyYyd/點擊空白區域返回到選定區域

的子菜單高亮顯示。如果我點擊菜單A或C,然後A或C部分會打開,但是如何單擊PAGE BLANK區域(背景顏色之外)返回B部分(打開B部分)

謝謝提前

+0

什麼叫頁空白是什麼意思? –

+0

什麼是頁面空白區域? –

+0

以外的ul和li。抱歉不明確。因爲我在背景顏色上放置了背景顏色 – olo

回答

1

您可以在document對象上捕獲click s並觸發所需列表項上的click

$(document).click(function() { 
    var selected = $('.selected:first'); 
    if(!selected.closest('ul.names').is(':visible')) { 
     selected.closest('.list').trigger('click'); 
    } 
}); 

此外,請務必return false從當前列表項click處理程序 - 這樣的列表項目正常點擊不傳播到上面的處理程序。

DEMOhttp://jsfiddle.net/gyYyd/2/

+0

非常感謝您的回答,但第二次點擊使B菜單關閉?任何方式保持打開,即使第二次點擊?意味着如果它打開保持它打開狀態 – olo

+0

是的,檢查更新的答案和演示。 – techfoobar

+0

打勾:-)非常感謝您的幫助 – olo