将父页面的段替换为#

时间:2012-09-11 作者:chocolata

我正在创建一个Wordpress站点,该站点具有Superfish CSS3/Jquery下拉菜单,并带有如下所示的hoverIntent:

http://users.tpg.com.au/j_birch/plugins/superfish/#examples

据我所知,此菜单在移动设备上运行良好,因为链接值引用相同的页面,如#a, 因此,单击链接不会导致页面重新加载。

请容忍我。我知道正确的方法是完全替换下拉菜单(使用选择框或其他工具),但我需要有与桌面上完全相同的体验(说来话长)。

我的问题是:如何用如下内部链接替换父页面的href值#a?

我的猜测是,通过jQuery这样做将是最好的解决方案。你对此有何看法?有人能提供一个切实可行的答案吗?提前谢谢。

2 个回复
最合适的回答,由SO网友:joel_birch 整理而成

根据我的经验,Superfish实际上并不依赖页面内链接来显示触摸设备上的子菜单(尽管我承认这完全是基于iOS设备)。

只需轻触一次顶级菜单项,它的子菜单就会显示出来。随后点击同一顶级菜单项将导致浏览器加载该链接。

SO网友:kaiser

您可以通过多种方式来实现此功能:

jQuery( \'.your-nav-menu-item-class\' ).on( \'click\', function( e )
{
    event.preventDefault();

    // replace the link here

    return false;
}
你也可以使用a walker class.

或内部的一个过滤器wp_nav_menu() - 只是check the source.

步行者面前:apply_filters( \'wp_nav_menu_objects\', $sorted_menu_items, $args )apply_filters( \'wp_nav_menu_items\', $items, $args )apply_filters( "wp_nav_menu_{$menu->slug}_items", $items, $args )apply_filters( \'wp_nav_menu\', $nav_menu, $args )

结束

相关推荐

dropdown menu, with walker

我正在使用下面的walker创建一个下拉菜单,我将在我正在处理的项目的移动版本上使用它。。。它工作得很好,但是,当我选择页面时,它不会加载页面,我缺少了什么?class Walker_Nav_Menu_Dropdown extends Walker_Nav_Menu{ function start_lvl(&$output, $depth){ $indent = str_repeat(\"\\t\", $depth); // don\'t output chil