Wordpress Twenty13主题下拉菜单在“;“在新选项卡中打开”;被选中

Wordpress Twenty13主题下拉菜单在“;“在新选项卡中打开”;被选中,wordpress,drop-down-menu,submenu,Wordpress,Drop Down Menu,Submenu,我的一个用户对我的一个页面有问题,该页面基于213WordPress主题。当他打开其中一个下拉菜单,然后单击鼠标右键并在浏览器中选择“在新选项卡中打开”时,下拉菜单不会消失。它冻结或卡住了。您可以将鼠标移出下拉菜单,但该菜单仍会显示,但情况并非如此。只有在单击其他位置时,菜单才会消失。或者,如果用鼠标中键单击,也会发生同样的情况(因为这本质上与“在新选项卡中打开”相同) 该场景可以在官方的Twentyree演示页面上复制: 只需将鼠标悬停在博客存档上,用鼠标中键单击其中一个出现的链接(或右键单击

我的一个用户对我的一个页面有问题,该页面基于213WordPress主题。当他打开其中一个下拉菜单,然后单击鼠标右键并在浏览器中选择“在新选项卡中打开”时,下拉菜单不会消失。它冻结或卡住了。您可以将鼠标移出下拉菜单,但该菜单仍会显示,但情况并非如此。只有在单击其他位置时,菜单才会消失。或者,如果用鼠标中键单击,也会发生同样的情况(因为这本质上与“在新选项卡中打开”相同)

该场景可以在官方的Twentyree演示页面上复制: 只需将鼠标悬停在博客存档上,用鼠标中键单击其中一个出现的链接(或右键单击,然后选择“在新选项卡中打开”)。然后将鼠标从下拉菜单上移开,菜单将不会消失。请参见以下屏幕截图:

对我来说,原因似乎是,链接是活动的,因为它被点击了,因此不会消失。这个问题也出现在新的wordpress主题中


有解决办法吗?当我对其中一个子元素使用“在新选项卡中打开”时,如何防止下拉菜单卡住?或者这种行为是预期的?如果是,我应该告诉我网站的用户什么?

这是针对触摸设备的。您可以注释掉或删除第59行附近的代码Twenty十三/js/functions.js:

if ( 'ontouchstart' in window ) {
    menu.find( '.menu-item-has-children > a, .page_item_has_children > a' ).on( 'touchstart.twentythirteen', function( e ) {
        var el = $( this ).parent( 'li' );

        if ( ! el.hasClass( 'focus' ) ) {
            e.preventDefault();
            el.toggleClass( 'focus' );
            el.siblings( '.focus' ).removeClass( 'focus' );
        }
    } );
}

// Better focus for hidden submenu items for accessibility.
menu.find( 'a' ).on( 'focus.twentythirteen blur.twentythirteen', function() {
    $( this ).parents( '.menu-item, .page_item' ).toggleClass( 'focus' );
} );

谢谢,我晚上试试。只是一个问题:这背后的意图是什么触摸设备?这样子菜单可以更容易地导航?还有一件事:我知道,直接更改父主题中的代码不是最佳做法。我已经建立了一个儿童主题。我如何在我的子主题中应用这些更改(没有/js/function.js可用)。在触摸设备上,您没有“悬停”,因此第一次点击将像触发器一样打开子菜单。在您的子主题的functions.php上,父主题js wp_dequeue_脚本(“Twenty十三脚本”)出列;然后将js文件复制到子主题,并将其排队:wp_enqueue_script('Twentythine child script',get_stylesheet_directory_uri()。/js/functions.js',array('jquery'),'20160717',true);