鼠标中心+单击事件只需点击一下WP8.1

时间:2014-11-04 11:54:28

标签: javascript javascript-events windows-phone-8.1

我正在尝试在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();
});
  • onmouseenter just activateSubmenu。

1 个答案:

答案 0 :(得分:0)