2015-05-26 3 views
5

Я использую jasny bootstrap offcanvas navbar (http://jasny.github.io/bootstrap/components/#navmenu-offcanvas), который закрывается всякий раз, когда происходит событие клика в другом месте страницы. Тем не менее, у нас есть канал Twitter, который был изменен для перехода между тремя различными учетными записями Twitter. Для переключения между ними запускается щелчок. Это приводит к тому, что navmenu закрывается каждый раз, когда переключается твиты, и я не могу предотвратить его.Запретить закрытие навигационной панели с помощью триггера другого элемента.

Вот код твиттер пролистайте:

var tabCarousel = setInterval(function() { 
    var tabs = $('#twittertab > li'), 
     active = tabs.filter('.active'), 
     nextone = active.next('li'), 
     toClick = nextone.length ? nextone.find('a') : tabs.eq(0).find('a'); 
    toClick.trigger('click'); 
}, 5000) 

Я пытался применять preventDefault() и stopPropagation() к trigger('click'), но я очень неопытный с JQuery, и я на самом деле только гадать, куда поместить это.

+0

Отправленный соответствующим обработчиком 'click' –

+0

извините, не уверен, что вы имеете в виду, я очень неопытен с jquery и просто пытаюсь решить проблему для коллеги, пока он уезжает – DJC

+0

Это' toClick.trigger ('click '); 'вызов обработчика, связанный с использованием jQuery, можете ли вы его опубликовать? Потому что лучшим способом было бы вызвать функцию обработчика, а не инициировать событие click. Теперь, если это задано внешним плагином, это может быть более сложным. Вам лучше предоставить минималистский образец, реплицирующий вашу проблему, например, с помощью jsFiddle –

ответ

1

Для всех, у кого есть аналогичная проблема, ответ прост, если вы не против жертвовать закрытием навигатора любым щелчком вне самой панели навигации. То есть, решение означает, что щелчок за пределами навигационной панели не будет закрывать его.

Просто добавьте 'data-autohide = "false" в элемент offcanvas.

Затем я добавил функцию для переключения состояния навигатора по щелчку ссылки в навигационной панели следующим образом;

$('#my-menu > li > a').click(function() { 
    $('.navmenu').offcanvas('toggle'); 
}); 

Это означает, что если у вас есть ссылки, которые не идут на другую страницу, но якорь где-то на той же странице, меню закроется при нажатии кнопки, чтобы перейти к этому разделу.

0

Если вы хотите, чтобы закрыть navmenu на внутренней связи нажмите тогда вы должны добавить «данных Autohide =» ложно «» на этом
<div class="navmenu navmenu-default navmenu-fixed-right offcanvas">
и добавить этот скрипт
$(document).ready(function(){$('.navmenu a').click(function() { $('.navmenu').offcanvas('hide'); });})
в вашем коде. это оно.
Примечание: это работает как заклинание в одностраничном приложении.

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