首页
学习
活动
专区
圈层
工具
发布
社区首页 >问答首页 >JQuery在单击函数上添加CSS不起作用

问JQuery在单击函数上添加CSS不起作用
EN

Stack Overflow用户
提问于 2015-01-28 18:04:49
回答 2查看 167关注 0票数 0

我对Windows设备(平板电脑)上的IE有异议。我有菜单和子菜单。如果菜单部分有子菜单,那么它就有类“多层次”和“内部链接”。在适当的桌面设备上,当“悬停”、“活动”、“选择”时会显示子菜单,在同一Windows设备上的其他浏览器上,这些子菜单将作为单击菜单选项来显示子菜单。然而,IE在这方面并不那么友好。

所以我做了这个解决方案,它阻止了默认的菜单选项单击(在IE中单击到子菜单选择的第一页),然后添加onclick CSS“显示!重要”以显示子菜单,这些子菜单在带有类"list“和"lvl-2”的标签下。

但是,该解决方案部分工作,它防止默认单击IE+touch,但不添加CSS到所需的元素在同一点击。

我的代码:

代码语言:javascript
复制
$(function ieTouch() {

    var ua = window.navigator.userAgent;
    var msie = ua.indexOf("MSIE ");
    var ifTouch = ua.indexOf("Touch");

    if ((msie != 0 || !!navigator.userAgent.match(/Trident.*rv\:11\./))&& ifTouch != -1) {      // If Internet Explorer and touchscreen
        $(".multi-level .inner-link").click(function (e) {
            e.preventDefault ? e.preventDefault() : event.returnValue = false;
            $(e.currentTarget).find("ul.list.lvl-2").css("display", "block", "important");
        });
    }    
});

感谢前方的任何帮助。

EN

回答 2

Stack Overflow用户

回答已采纳

发布于 2015-01-28 18:21:11

我认为e.currentTarget.style.setProperty('display' 'block', 'important');可能是最好的解决方案。

票数 1
EN

Stack Overflow用户

发布于 2015-01-28 18:24:50

jQuery不支持css中的优先级.为此,您需要使用纯javascript。

代码语言:javascript
复制
$.each($(e.currentTarget).find("ul.list.lvl-2"),function(el){
    $(el).get(0).style.setProperty('display','block', 'important');
};
票数 1
EN
页面原文内容由Stack Overflow提供。腾讯云小微IT领域专用引擎提供翻译支持
原文链接:

https://stackoverflow.com/questions/28199293

复制
相关文章

相似问题

领券
问题归档专栏文章快讯文章归档关键词归档开发者手册归档开发者手册 Section 归档