droppable in droppable

2019-07-09 02:50发布

问题:

I have this markup

<ul id="hello" class="cat">
    <ul id="a1" class="cat">
    </ul>
    <ul id="a2" class="cat">
    </ul>
</ul>

I did this thing

$("ul.cat").droppable(
{
    drop:function()
    {
        alert($(this).attr("id"));
    }
});

It always write "hello". only "hello". How can I bind droppable on childs too?

UPD: I want drop in elements in #hello's chidlren AND #hello itself. I want to determine where li was dropped.

回答1:

I've found the solution: #hello needs greedy:true

http://jqueryui.com/demos/droppable/#propagation



回答2:

It will bubble up to the top UL, which you don't want droppable. Try this:

$("#hello ul.cat").droppable(
{
    drop:function()
    {
        alert($(this).attr("id"));
    }
});

here's a jsfiddle



回答3:

try this:

$("ul.cat").each(function(){

  $(this).droppable(
  {
      drop:function()
      {
          alert($(this).attr("id"));
      }
  });

})

http://jsfiddle.net/maniator/HXjeQ/