[jQuery] Nested Lists and Droppable : issues at "over" event

[jQuery] Nested Lists and Droppable : issues at "over" event


Hello everybody!
I'm building an application quite similar to the Mac OSX Finder with a
massive help from jQuery.
I've done a lot yet but I'm having some trouble handling the droppable
event.
Let's see what's in there :
I have some nested lists like this example :
<ul>
    <li class="category">
        <ul>
            <li class="category">...
                <ul />
            </li>
            <li class="item">...</li>
            <li class="category">...
                <ul>
                    <li class="category">...
                        <ul />
                    </li>
                    <li class="item">...</li>
                </ul>
            </li>
        </ul>
        <ul>
            <li class="category">...
                <ul />
            </li>
        </ul>
    </li>
</ul>
An so on...
<li class="category"> is droppable AND draggable.
<ul> is only droppable.
<li class="item"> is only draggable.
Example: When you drag a draggable over a <ul>, nothing has to happen.
But when you drag a draggable over a <li class="category">, the <ul>
nested in this <li> has to be opened (like what happen in the OSX
Finder).
How I wrote this?
First I declared a click handler to open the nested <ul> when clicking
on a <li class="category">. Here it is:
//Click on li.
$('li').click(function(e){
    e.stopPropagation();
    var o = $(this);
    o.siblings('li.expanded, li.info').removeClass('expanded info'); //
Remove highlights [siblings & children].
    $('li.expanded, li.info',this).removeClass('expanded info');
    if (o.hasClass('secteur') || o.hasClass('categorie')) //Highlight the
clicked one, according his class.
        o.addClass('expanded');
    else if (o.hasClass('item'))
        o.addClass('info');
});
As I didn't want to repeat myself, I used this click handler in the
over handler, like this:
over: function( e, ui )
{
    if(this.nodeName.toUpperCase() == 'UL')
        return;
    $(this).click();
},
So when the draggable is over a <ul>, nothing happens. But when it is
over a <li class="categorie">, it triggers the <li> click event.
The problem is that when you drag a <li> over a <li class="categorie">
and it opens his nested <ul>, you have to release your draggable and
drag it again over the next <li class="categorie">.
What I want to do is "chaining" the triggers and opening several
categories without having to release the draggable and drag it again.
Thanks a lot for your help and contribution and do not hesitate to
propose any idea you have, it's been a week that I'm stucked with it.