2013-08-22 78 views
3

我已经看到了这个问题到处都有,我已经实现了多个不同的解决方案,我发现,但似乎没有工作。我有一个引导程序可折叠菜单,其中包含子菜单。当一个子菜单链接被点击时,它只是关闭子菜单并且不会重定向到链接。我已经实现了,我原以为会做的伎俩下面的脚本:Bootstrap子菜单链接不工作

$('.dropdown-toggle').click(function(e) { 
    e.preventDefault(); 
    setTimeout($.proxy(function() { 
     if ('ontouchstart' in document.documentElement) { 
      $(this).siblings('.dropdown-backdrop').off().remove(); 
     } 
    }, this), 0); 
}); 

这个脚本允许的子菜单到下拉在触摸屏设备,但链接不工作。我尝试删除e.preventDefault();行,但这似乎也没有工作。

如何让我的子菜单链接在移动触摸屏上工作?他们在桌面上工作得很好,当我按住触摸屏上的链接时,我可以在新选项卡中打开正确的链接,但只需点按它即可。

编辑:这里是我的一块HTML的:

<div class="span3"> 
    <li class="dropdown-submenu"> 
     <a href="#" tabindex='-1' class="dropdown-toggle nav-header" data-toggle="dropdown"><i class='icon-time'></i>Time Clock Management</a> 
     <ul class='dropdown-menu'> 
      <li><a href="#">Labor Scheduling</a></li> 
      <li><a href="/change-manager/">Change Manager</a></li> 
     </ul> 
    </li> 
</div> 
+0

如何只需添加'window.location.assign (SelectYourLinkTag.href);'? – Ariane

+0

我将如何选择特定的链接?我试过'window.location.assign($(this).attr.href);'但是试图在所有链接上重定向(甚至只是下拉菜单) –

+0

我不能告诉你,如果我可以'不要看你的HTML。 – Ariane

回答

8

我通过添加下面的JavaScript修复了这个问题:

$('.dropdown-submenu ul.dropdown-menu li a').on('touchstart', function(e) { 
    e.preventDefault(); 
    window.location.href = $(this).attr('href'); 
}) 
+1

为我工作,谢谢。但是,我不得不将'on('touchstart',...)'改为'click(...)'。这有什么不同吗 ? –

+0

很高兴为你效劳!我不确定如果将'touchstart''改成''click''会产生很大的变化,如果有的话。 –

+0

我真的不得不改变,如果'点击(...)' – Tounu