在javascript中可单击多个css类

在javascript中可单击多个css类,javascript,css,clickable,Javascript,Css,Clickable,我如何才能做到即使是“toggle_cart”也可以像“clickerHeader”一样点击 但是否保留其悬停效果(请参见箭头) 请看 只需将这两个元素包装在一个div中。。 在CSS中添加: .eventMenu:hover .no-js .contentHolderHeader { display: block; } 还将display:none添加到div.eventMenu.contentHolderHeader 将JS替换为: $('.eventMenu > ul')

我如何才能做到即使是“toggle_cart”也可以像“clickerHeader”一样点击 但是否保留其悬停效果(请参见箭头)

请看


只需将这两个元素包装在一个div中。。

在CSS中添加:

.eventMenu:hover .no-js .contentHolderHeader {
    display: block;
}
还将
display:none
添加到
div.eventMenu.contentHolderHeader

将JS替换为:

$('.eventMenu > ul').toggleClass('no-js js');
$(".toggle_cart").click(function(e){
    $(".contentHolderHeader").slideToggle();
    e.stopPropagation();
});
$(".eventMenu").click(function(e){
    e.stopPropagation();
});
$(document).click(function(){ 
    $(".contentHolderHeader").slideUp();
});
删除HTML中的内部
ul


使用/不使用JS测试:

对现有代码的最小更改是在单击函数的第一行之后添加以下两行:

if ($elem.hasClass('toggle_cart'))
     $elem = $elem.next();
换句话说,如果单击了带有箭头的跨度,则假定实际单击了锚元素。在这方面:

        $(document).on("click", function(e) {
            var $elem = $(e.target);
            if ($elem.hasClass('toggle_cart'))
                $elem = $elem.next();
            if ($elem.hasClass('clickerHeader')) {
            // etc.

演示:

您好,看了您的更改,但不明白。我希望“toggle_cart”可以像“clickerHeader”一样被点击?有什么理由它都在一个li项目中吗?原因是我会添加更多链接,(成为菜单)嗯……toggle cart箭头是用来打开语言的吗?“toggle_cart”应该打开“contentHolderHeader”,这也是“clickerHeader”必须做的(今天进行)。是的,但在您的示例中,如果没有激活javascript,则停止回退工作,然后转到菜单上的mouseover。嗨,这不对,那么mnu在没有javascript(鼠标悬停)的情况下无法工作,并且当您单击“contentHolderHeader”外部时,它不会上升。
if ($elem.hasClass('toggle_cart'))
     $elem = $elem.next();
        $(document).on("click", function(e) {
            var $elem = $(e.target);
            if ($elem.hasClass('toggle_cart'))
                $elem = $elem.next();
            if ($elem.hasClass('clickerHeader')) {
            // etc.