1

我正在使用 Jquery UI “菜单” API 在应用程序中创建导航菜单。

菜单绘制和链接很好,当悬停在它上面时,会应用自然的 jquery ui css,为悬停的元素提供 ui-state-focus 类。当您将鼠标从元素上移开时,它会删除此类,这会将元素置于默认的未突出显示状态。

我已经尝试添加标准的 jquery ui css 类“ui-state-active”,它将特定的 CSS 应用于给定此类的菜单中的元素。但是,当悬停任何其他元素时,此 ui-state-active 类将从活动元素中删除,即使尚未进行新选择(通过单击),也有效地使悬停杀死活动选择。

我希望能够保持悬停类的添加,但保持 ACTIVE 类不变,以便在每个页面上,活动菜单元素将始终具有活动类。

关于在 jquery UI 菜单 api 中标记活动元素的正确方法有什么想法吗?

4

2 回答 2

4

我建议为所选项目创建一个单独的类(您可以复制现有的 ui-state-active 并将其重命名为 selected 之类的名称),然后:。

    $("#menu").find("a").click(function(){
    $("#menu").find("a").removeClass("selected");//remove if something was selected
    $(this).addClass("selected");//add a selected class
    });

希望有帮助

于 2013-03-06T06:28:01.337 回答
0
jQuery.widget("ui.menu", jQuery.ui.menu, {
    blur: function( event, fromFocus ) {
        if (event && event.type === "mouseout"))
            return this;
        else 
            return this._super(event, fromFocus);
    } 
});

仅适用于 jQuery >= 1.9

于 2014-06-17T09:24:14.177 回答