使用jquery重新排列菜单:悬停事件不会在拖动时触发

时间:2012-07-19 16:21:56

标签: jquery jquery-ui

我正在尝试创建一个页面,允许您使用jquery可排序函数重新排序菜单。菜单包括导航栏,链接水平排列;将鼠标悬停在链接上将显示一个子菜单作为下拉列表,这可以按预期工作。但是,在拖动项目以重新排序时,悬停事件不会触发,因此子菜单不会显示,从而阻止您将链接放入其中。

我认为这可能与拖动直接坐在鼠标下面的项目有关,并阻止其他对象获取事件。我尝试过mouseover和mouseout而不是悬停,但这也不起作用。

有什么想法吗?

修改:这是我的jsfiddle

1 个答案:

答案 0 :(得分:1)

您可以使用jQuery UI droppable行为,然后将行为附加到overout处理程序。请参阅my fork of your jsFiddle

$('li', menu)
    .mouseover(function () { $('>ul', $(this)).show(); })
    .mouseout(function () { $('>ul', $(this)).hide(); })
    .droppable({
        over:function() { $('>ul', $(this)).show(); },
        out:function () { $('>ul', $(this)).hide(); }});