Javascript JQuery单击添加CSS功能不工作
我对Windows RT设备(平板电脑)上的IE存在问题。我有它下面的菜单和子菜单。若菜单部分有子菜单,那个么它有类“多级”和“内部链接”。在适当的桌面设备上,当“悬停”、“活动”、“选定”时会显示子菜单,而在同一Windows RT设备上的其他浏览器上,则显示为单击菜单选项以显示子菜单。然而,IE在这方面并不友好 所以我做了这个解决方案,它阻止了菜单选项单击的默认操作(即IE中的单击进入子菜单选择的第一页),然后添加了onclick CSS“display!important”来显示子菜单,该子菜单在类“list”和“lvl-2”的标记下 然而,该解决方案的部分工作原理是,它阻止IE+touch的默认点击,但不会在同一次点击中向所需元素添加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”来显示子菜单,该
$(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”)。同样的结果:/