我正在尝试在WP8.1上修复IE10 / 11的下拉菜单。
我有一个下拉菜单,在mouseenter或onclick上激活子菜单。如果子菜单已经可见,也可以进行onclick功能检查 - 重定向到目标(父菜单有href)。
PC:mouseenter - 我看到子菜单,如果我点击父母 - 我被重定向。
iOS:首先点击菜单 - 显示子菜单,第二次点击 - 重定向。
WP:首先点击执行这两个事件! Mouseenter - 所以它显示子菜单然后点击 - 所以它重定向我。坏。
我该如何解决?
我试过: 1.触摸动作:无; 2.在2个事件之间设置一个计时器,但它非常大! 300-500毫秒,所以我不能一直使用它。
此代码可以通过计时器工作,我已经添加了对IEMobile浏览器的检查,以便快速点击PC。但这很糟糕,它如何改进?
$('.sideSliderParent').click(function(e) {
var path = $(this).children('a').attr('href');
var subID = $(this).attr('data-submenu-id');
var diff = Date.now() - timeMouseOverWP;
// check if submenu displayed
var isDisplayed = true;
if (subID) {
isDisplayed = ($('#' + subID).css('display') == 'block');
}
e.preventDefault();
if (subID && path != '' && path != '#' && isDisplayed && (diff>500 || !navigator.userAgent.match(/IEMobile/i))){
document.location.href = path;
}
if (isDisplayed==false){
activateSubmenu(this);
}
e.stopImmediatePropagation();
});