2010-12-22 66 views
0

我正在使用jQuery的可排序功能对我的应用程序中的项目列表进行排序。看到我的列表变得非常大,我决定将它们重新组织在可扩展或折叠的子列表中。Jquery Sortable获取底层div的ID

我的想法是,当用户在子列表的标题上拖拽一个元素,并将其光标保留750ms时,该列表将展开,但我遇到了一个问题,我无法获取底层div的ID,因为jquery似乎抓住了我拖动的项目的ID,而不是我将它悬停在上面。

是否有一个功能或插件,我可以用来实现这一点(我敢肯定,我不是第一个有这个问题,但我的谷歌未能提出任何与我有关的东西)。

感谢所有帮助:)

编辑:

这里是我想要做的一个想法:

$('.categoryLi').hover(function(){expandCategory(this.id);}); 

function expandCategory(id) 
{ 
    if(sectionDraggingMode) 
    { 
     $(document).oneTime('750ms', 'expandCategoryTimer', function(){$('#'+id+' .category_content').show();}); 
    } 
} 

这是我的HTML的要点:

现在当我将鼠标悬停在。类别Li我通过我悬停的元素的id调用expandCategory发送,但它从不触发任何。类别Li容器的悬停,但此时我正在拖动的元素的父元素除外。我需要找到一种方法来“偷看”它。所以,如果我从#C9拖动某一项 jQuery的认为我始终徘徊在#C9

+0

你能提供你的代码或例子,以便我们看到发生了什么? – 2010-12-22 20:49:17

回答

1

那么原来,jQuery的投掷的可以用于此目的。我将我想要用作触发器的区域定义为可放置区域,并在over事件触发时做到这一点。

$('.categoryLi > .toolbar').droppable({ 
    accept: ".sectionLi", 
    over: function(event, ui){ 
     $(this).siblings('.category_content').show(); 
     $('.section').sortable('refreshPositions'); 
    } 
}); 

这个修复有一些问题,但至少它解决了悬停问题。希望这可以帮助未来的人。