2013-09-28 14 views
5

Używam biblioteki nokaut-bootstrap.js do wspomagania inicjowania podpowiedzi przy korzystaniu z Knockout.js do stosowania etykiet podpowiedzi do niektórych powiązanych elementów HTML KO.Wskazówka do narzędzia Bootstrap powodująca przeskok ekranu na iPadzie

<a href="#" data-bind="attr: { tabindex: -1 }, tooltip: { title: buyerHelp, placement: 'top', trigger: 'click', container: 'body' }"><i class="glyphicon glyphicon-help"></i></a> 

Używam wyzwalacza: "kliknij" zamiast hover, ponieważ podpowiedzi podpowiedzi nie ukrywają się ponownie po wyświetleniu za pomocą iPada. Po dotknięciu ikony podpowiedzi etykieta pojawia się dobrze, ale jeśli strona jest przewijana, przeskakuje z powrotem na górę. Nie jestem pewien, jaki kierunek należy podjąć w tej kwestii.

Obecnie używam Bootstrap 3.0, ale miałem ten sam problem z Boostrap 2.3 Dzięki!

Odpowiedz

3

Czy link rzeczywiście jest śledzony po kliknięciu? Tak jak w przypadku strony próbującej załadować wartość href kotwicy po kliknięciu? Ponieważ cały tag nie jest zawarty w twoim przykładzie, nie jestem pewien, czy jest to kotwica. I nie jestem pewien, czy biblioteka knockout-bootstrap.js zapewnia, że ​​zdarzenia związane z danymi są powstrzymywane (tak jak w domyślnym zdarzeniu kliknięcia). Jeśli kotwica próbuje podążać za linkiem po kliknięciu, możesz spróbować obejrzeć zdarzenie click i zapobiec zdarzeniu związanemu z danymi. Tak jak po podpowiedzi:

data-bind="attr: { tabindex: -1 }, tooltip: { title: sellerHelp, placement: 'top', trigger: 'click' }, click: function(data, event) { event.preventDefault(); }" 

Mam nadzieję, że to pomoże!

Również ogólnie rzecz biorąc najlepiej byłoby mieć handler'a w viewModelu i mieć go zablokowany, zamiast wstawiać.

prawdopodobnie byłby dobry do czytania po drodze zdarzenia kliknięcia są obsługiwane w nokaut, a także: http://knockoutjs.com/documentation/click-binding.html

+1

można również użyć wiązania "clickBubble: false", ale jeśli nie ma zdarzenia kliknięcia, musisz dodać takie, które po prostu zwraca true: 'click: function() {return true; }, clickBubble: false ' – mduminy

+0

To była kotwica i zaktualizowałem moje pytanie, aby to odzwierciedlić, po prostu usunąłem href = "#", o czym przypomniała mi moja odpowiedź, nie mogę uwierzyć, że przeoczyłem to –

2

Może być dodanie container: 'body' do opcji mieszania mogą pomóc, tak jak:

data-bind="attr: { tabindex: -1 }, tooltip: { title: sellerHelp, placement: 'top', trigger: 'click', container: 'body' }" 
+0

będę testować to się wkrótce, muszę dostać w swoje ręce na iPada, dzięki! –

+0

Nie, niestety to nie zadziałało, –

0

Uważam, że zabawy z CSS zazwyczaj rozwiązać ten problem.

Sugeruję próbę dodania/usunięcia pozycji: względem rodzica.

Również tutaj są następujące właściwości CSS, które spowodowały problemy dla mnie w przeszłości: - Pozycja - margines - wysokość

Bez ryba spojrzenia na to trudno powiedzieć dokładnie co to jest. To nie jest biblioteka, ponieważ na demo mają działający przykład.