Javascript Jquery在单击“发生”时删除活动类

Javascript Jquery在单击“发生”时删除活动类,javascript,html,jquery,Javascript,Html,Jquery,我正在使用下一个html结构: <ul class="menu"> <li class="item"> <small>Ubicacion</small> <a class="item-content" href="#"> <i class="item-icon fas fa-map-ma

我正在使用下一个html结构:

<ul class="menu">
    <li class="item">
        <small>Ubicacion</small>
        <a class="item-content" href="#">
        <i class="item-icon fas fa-map-marker-alt"></i><span>Ubicaciones</span>
        <i class="down fas fa-sort-down"></i>
        </a>
        <ul class="sub-menu ubicaciones">
            <li class="sub-item">Ubicacion1</li>
        </ul>
    </li>
</ul>
在这段代码中,我只得到了类向下的元素,即箭头图标,我添加了活动的类以向上旋转箭头。我用class子菜单中的元素做了同样的操作,我添加class active来显示它

我还有这个代码:

$(document).on('click', '.sub-item', function (evemt) {
    event.preventDefault()
    console.log('Hola!')
})
有了这段代码,我想得到子项元素中的文本,但当我用类子项点击任何一个元素时,该类被从我的元素中删除,子菜单和子菜单被隐藏,我不想这样做,我尝试使用preventDefault,但它不起作用


有人能告诉我我的错误是什么吗?

您可以在单个事件处理程序的帮助下这样做:

$('.menu.item')。单击(函数(事件){
if($(event.target).hasClass('sub-item')){
console.log('Hola!')
}否则{
$(this).find('.item content.down').toggleClass('active'))
$(this).find('.sub菜单').toggleClass('active'))
}
})

  • 泛化
    • Ubicacion1

您的jquery中有一个点击事件的输入错误,它应该是事件而不是事件!我改变了它,但我有同样的问题,然后,我想你可能需要在这个功能中再次对它们设置活动类
$(document).on('click', '.sub-item', function (evemt) {
    event.preventDefault()
    console.log('Hola!')
})