2013-08-22 75 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