Salut,
Il faut parcourir la liste du début jusqu'au un nœud parent de l'élément cliquer + l'élément cliquer lui même.
//ajoute le niveau de hiérarchie dans les ul
function add_level(el, level)
{
$(el).data("level", level++)
.children().children()
.each(function(){
add_level(this, level)
})
}
$(document).ready( function(){
$root = $("#menu > ul");
//récupère le texte des span jusqu'à ce que level === 0
var get_text = function($e, level){
if (!--level)
return "";
var text = "";
$e.each(function(){
text += $(">span", this).text()+
","+get_text($(">li>ul",this), level)
})
return text;
}
$root.each(function(){
add_level(this, 1)
})
.find("li")
.click(function(){
var ul = this.parentNode;
var l = get_text($root, $.data(ul, "level")) + $(">span", ul).text();
alert("level "+$.data(ul, "level")+":"+l)
return false;
});
});
ul {
background-color:rgba(0,255,0,.1)
}
li {
border:1px green solid
}
<navigation id="menu">
<ul class="level-1" data-level="1">
<span>AA</span>
<li class="item-i">I</li>
<li id="ii" class="item-ii">II
<ul class="level-2" data-level="2">
<span>BB</span>
<li class="item-a">A</li>
<li class="item-b">
<ul class="level-3" data-level="3">
<span>CC</span>
<li class="item-1">1</li>
<li class="item-2">2</li>
<li class="item-3">3</li>
</ul>
</li>
<li class="item-b">
<ul class="level-3" data-level="3">
<span>CC2</span>
<li class="item-1">1</li>
<li class="item-2">2</li>
<li class="item-3">3</li>
</ul>
</li>
<li class="item-c">C</li>
</ul>
</li>
<li class="item-iii">III</li>
</ul>
</navigation>