Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/452.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/83.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript JQuery单击添加CSS功能不工作_Javascript_Jquery_Css_Internet Explorer_Windows Rt - Fatal编程技术网

Javascript JQuery单击添加CSS功能不工作

Javascript JQuery单击添加CSS功能不工作,javascript,jquery,css,internet-explorer,windows-rt,Javascript,Jquery,Css,Internet Explorer,Windows Rt,我对Windows RT设备(平板电脑)上的IE存在问题。我有它下面的菜单和子菜单。若菜单部分有子菜单,那个么它有类“多级”和“内部链接”。在适当的桌面设备上,当“悬停”、“活动”、“选定”时会显示子菜单,而在同一Windows RT设备上的其他浏览器上,则显示为单击菜单选项以显示子菜单。然而,IE在这方面并不友好 所以我做了这个解决方案,它阻止了菜单选项单击的默认操作(即IE中的单击进入子菜单选择的第一页),然后添加了onclick CSS“display!important”来显示子菜单,该

我对Windows RT设备(平板电脑)上的IE存在问题。我有它下面的菜单和子菜单。若菜单部分有子菜单,那个么它有类“多级”和“内部链接”。在适当的桌面设备上,当“悬停”、“活动”、“选定”时会显示子菜单,而在同一Windows RT设备上的其他浏览器上,则显示为单击菜单选项以显示子菜单。然而,IE在这方面并不友好

所以我做了这个解决方案,它阻止了菜单选项单击的默认操作(即IE中的单击进入子菜单选择的第一页),然后添加了onclick CSS“display!important”来显示子菜单,该子菜单在类“list”和“lvl-2”的标记下

然而,该解决方案的部分工作原理是,它阻止IE+touch的默认点击,但不会在同一次点击中向所需元素添加CSS

我的代码:

$(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");
        });
    }    
});

感谢转发中的任何帮助。

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

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

$.each($(e.currentTarget).find("ul.list.lvl-2"),function(el){
    $(el).get(0).style.setProperty('display','block', 'important');
};

您的初始if语句是否确实解析了
true
?请尝试登录msie!!navigator.userAgent.match和ifTouch。。你确定if是真的吗?
.css(“display”、“block”、“important”)
css()
方法不接受第三个参数您好,是的,它是真的,我已经有半天的提醒了(也在单击功能中),并且在这里发布之前删除了提醒。:)A.Wolff——我也尝试过使用.css(“display”,“block!important”)和css(“display”,“block”)。同样的结果:/