jquery - 如何设置事件的 jQuery 菜单项

标签 jquery css

我是 jQuery 的新手。我很感激任何方向。当用户单击不同的菜单项时,我试图将 jQuery 菜单项设置为 active。我有一个包含 li 菜单项的 ul 列表。第一次加载时,我将 #menuitem1 设置为单击以初始选择它。例如,如果用户随后单击 #menuitem3,则存在检查某些内容的条件,如果不满足条件,我需要初始菜单项 #menuitem1 来保持为事件菜单项。

菜单 ul>li 如下所示:

<ul id="adminMenu">
    <li class="ui-widget-header">Application Settings</li>
    <li id="menuitem1" onclick="loadAppSettings();">Settings</li>
    <li id="menuitem2" onclick="LoadView('wLibs', 'Libraries', this);">Libraries</li>
    <li id="menuitem3" onclick="LoadView('wDocs', 'Document', this);">Documents</li>
</ul>
var previousmenuitem = "menuitem1"

//initializes with
$("#" + previousmenuitem).click()

function LoadView(a, b, liObj){

    if(condition_not_met){ // if condition is not met, I need to set the previous active menu item back to active
        //remove active class from what was clicked
        $(liObj).removeClass("active")
        //set active menu li to previousmenuitem
        $("#" + previousmenuitem).addClass("active")
    }
}

我尝试使用 ui-state-active 而不是 active 添加/删除 li 类,或者尝试删除 active 所有 li $('#adminMenu li.active').removeClass('active'); 等等。

或者使用选择选项和焦点选项尝试捕捉选择或焦点,如果条件满足就退出,就像这样(我只是在这里有一个警报,但它甚至没有为我弹出警报)。

$( "#adminMenu" ).menu({
  items: "> :not(.ui-widget-header)"
  select: function(e, ui){
    alert("here")
    return false;
  }
});

最佳答案

你可以这样做,只需使用 $(this)

$("#adminMenu li").on('click',function(){
$(".active").removeClass("active");
$(this).addClass("active");
});

这是一个简单的演示

$("#adminMenu li").on('click',function(){
$(".active").removeClass("active");
$(this).addClass("active");
});
.active{
    background-color:red;
}
<script src="https://ajax.googleapis.com/ajax/libs/jquery/2.1.1/jquery.min.js"></script>
<ul id="adminMenu">
    <li class="ui-widget-header">Application Settings</li>
    <li id="menuitem1" class="active">Settings</li>
    <li id="menuitem2">Libraries</li>
    <li id="menuitem3">Documents</li>
</ul>

关于jquery - 如何设置事件的 jQuery 菜单项,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/29859580/

相关文章:

javascript - 选择框更改 css 类

javascript - 如何捕获输入到 HTML 表单字段中的数据?

javascript - 如何在生成的html的onclick函数中传递参数

javascript - FacetWP 过滤器 - 单击单选按钮即可重置构面

MVC 升级后 Javascript 功能不起作用

android - 个人电脑、平板电脑、iPhone、iPad、纵向和横向文本问题

html - 响应式设计 HTML/CSS 中的固定背景

html - 如何从选择元素中清除CSS?

Jquery 转换

c# - 使用 jQuery 将多个参数发布到 Web API