2013-08-22 5 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();, но это тоже не сработало.

Как я могу получить свои подменю для работы на мобильных сенсорных экранах? Они отлично работают на рабочем столе, и когда я удерживаю ссылку на сенсорных экранах, я могу открыть правильную ссылку на новой вкладке, но она не работает, когда вы просто ее нажимаете.

EDIT: Вот мой кусок 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', ...)' to 'click (...)'. Есть ли разница ? –

+0

Рад, что это сработало и для вас! Я не уверен, что изменение «touchstart» для «click» будет иметь большое значение, если оно есть. –

+0

Мне действительно нужно было изменить, если 'click (...)' слишком – Tounu

Смежные вопросы