jQuery mouseleave не срабатывает правильно при перетаскивании

У меня есть сортируемый список с некорректным прослушивателем событий mouseleave.

Если я перемещаю мышь в сортируемый список и из него, то mouseleave срабатывает правильно.

Если я сначала щелкну и перетащу одного из дочерних элементов сортировки, mouseleave срабатывает неправильно - спорадически или не запускается вообще.

Есть идеи?

Спасибо.

update: Это также происходит для событий mouseout.

<style>
#sortable { list-style-type: none; margin: 0; padding: 0; float: left; margin-right: 10px; background-color: #CCC; }

#sortable li { margin: 0 5px 5px 5px; padding: 5px; font-size: 1.2em; width: 120px; }
</style>

<script>
  $(function(){
    $("#sortable").sortable().disableSelection();
    $("#sortable").mouseleave(function(){ console.log("mouseleave"); });
  });   
</script>

<ul id="sortable">
  <li class="ui-state-default">Item 1</li>
  <li class="ui-state-default">Item 2</li>
  <li class="ui-state-default">Item 3</li>
</ul>

обновление Я использовал следующее, чтобы определить, когда дочерний элемент был полностью перетащен за пределы сортировки:

$("#sortable li").mousemove(function() {
        if ($(this).offset().left > $(this).parent().outerWidth() + $(this).parent().offset().left ||
                $(this).offset().top > $(this).parent().outerHeight() + $(this).parent().offset().top  ||
                $(this).offset().left + $(this).outerWidth() < $(this).parent().offset().left  ||
                $(this).offset().top + $(this).outerHeight() < $(this).parent().offset().top ){
                console.log("child is outside parent");
            }
    });
7
задан John 22 July 2011 в 06:55
поделиться