Clicky

Skocz do zawartości


Zdjęcie
- - - - -

[Bootstrap] Modal / popover - promblem...

1 odpowiedź w tym temacie

  • Zaloguj się, aby dodać odpowiedź

#1 Daredzik

Daredzik

    Młodszy Mastah

  • Użytkownik
  • PipPip
  • 308 postów
  • Skąd:Pszczyna

Napisano 20 październik 2012 - 12:31

Witam,
po zaktualizowaniu boostrapa do najnowszej wersji mam problem z popoverem w okienku modal...
popover zostaje pokazany pod oknem modal, w dodatku to samo dzieje się w dokumentacji http://twitter.githu...ipt.html#modals
moja przeglądarka to chrome, u was też jest problem ??

-----
druga sprawa... chcę w jakiś sposób przekazać id do modala, chcę wykorzystać modala do potwierdzenia operacji usunięcia elementu, z listy przedmiotów klikam sobie link [usun] przy danym przedmiocie wywala nam modala z informacją, że dane zostaną usunięte i mamy możliwość anulowania (z defaultowym focusem) albo usunięcia, anulowanie zamknie modala a usuniecie usunie przekazany wpis o podanym id... tylko jak wyciągnąć id klikniętego elementu ?



#2 Riu

Riu

    Senior Mastah

  • Webmastahy
  • PipPipPip
  • 949 postów

Napisano 20 październik 2012 - 13:10

Co do pierwszego - dzieje się tak ponieważ dla jednego i drugiego dynamicznie obliczana jest pozycja top i left - na podstawie pozycji elementu za pomocą którego wywoływana jest akcja. Prawdopodobnie popover dziedziczy coś z modala - źle pobiera albo parametr position albo nie z tego elementu co trzeba (nie ustawia się prawidłowo).

W drugiej sprawie - bardziej konkretnie:

- żeby wywołać modal masz np jakiś link o określonej klasie/id
- link ten może zawierać też parametry zaczynające się od `data-` które zawierają różne dane
- w momencie kliknięcia (lub innej akcji) możesz pobrać sobie z tego link, a dokładnie z w/w data-cośtam potrzebne dane:

$("a.klasalinka").click(function(ev) {
	ev.preventDefault();
	var selflink = $(this);
	var id = selflink.data('id'); // dla data-id="";
	// akcja
});

- jeżeli modala masz ukrytego ale obecnego w drzewie DOM do sprawa jest prosta - powyższy link masz już w kodzie. Jeśli nie masz to musisz: po kliknięciu utworzyć obiekt modala (ale nie tak jak w dokumentacji) a w nim obiekt linka - w przeciwnym razie nie będziesz mógł wykonać akcji po kliknięciu.

Edit: zajrzałem jeszcze do dokumentacji specjalnie:

<div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button class="btn btn-primary">Save changes</button>
  </div>


Możliwe rozwiązania:
$("button.btn-primary").click(function(ev) {
	ev.preventDefault();
	var id = $("a.klasalinka").data('id'); // dla data-id="";
	// akcja
});

Oczywiście trzeba pamiętać o tym, że możemy mieć więcej buttonów z taką klasą na stronię więc trzeba np zastosować jakąś unikalną klasę i o tym samym pamiętać przy linku albo:

<div class="modal-footer">
    <button class="btn" data-dismiss="modal" aria-hidden="true">Close</button>
    <button data-id="1" class="btn btn-primary">Save changes</button>
  </div>

$("button.btn-primary").click(function(ev) {
	ev.preventDefault();
	var selflink = $(this);
	var id = selflink.data('id'); 
	// akcja
});

Debian/Ubuntu + Kohana/Hanariu/Phalcon + MongoDB/MySQL + HTML5/CSS3 + Node.js/jQuery + CEO Sport Magazyn/CEO Hanariu





Użytkownicy przeglądający ten temat: 0

0 użytkowników, 0 gości, 0 anonimowych