Wątek przeniesiony 2015-04-10 15:14 z PHP przez dzek69.

Bootstrap accordion - dodawanie klikniętego ID do paska url

0

Witam serdecznie,
mam taką stronkę: http://46.29.150.76/test/czlonkowie_izby.html

Po kliknięciu każdej pozycji w tym "accordionie" chciałbym żeby dodawał się do adresu url hash (czyli np http://46.29.150.76/test/czlonkowie_izby.html#company12 lub podobny).

Potrzebuję to do tego, żeby gdy użytkownik wyśle komuś url do konkretnej firmy - to żeby otworzyła mu się odpowiednia firma (a nie domyślnie - ta pierwsza).

Wie ktoś może jak to zrobić?
Nie bardzo wiem jak to zrobić (w kodzie są widoczne moje obecne "wypociny" ale nie bardzo to działa).

Generalnie w Firefoxie występował problem z tym, że po kliknięciu w nagłówek firmy strona za bardzo się przesuwała do góry (i bardzo często nie było widać firmy którą się wybrało).
Znalazłem takie rozwiązanie w internecie:

 $("#accordion").bind('shown', function() {
        var active=$("#accordion_univlist .in").attr('id');
        scrollhere('#'+active);
        $('.closebutton-right').hide(); 
}); 

$('.accordion-heading').click(function () { 
  
}

function scrollhere(destination){
    var stop = $(destination).offset().top - 40;
    var delay = 1000;
    $('body,html').animate({scrollTop: stop}, delay);
    return false;
}
[

I teraz działa poprawnie na wszystkich przeglądarkach. Przed tą modyfikacją skrypt dodawał te hashe do url (mój kod jest widoczny w tym linku) - jednak po "naprawie"
wyświetlania przestały się dodawać te hashe... Nie wiem jak to ze sobą połączyć... :(

Czy mógłby mi ktoś to naprawić?

Bardzo proszę o pomoc,
Northwest

0

Popraw pliki na tym serwerze, teraz nawet nie ma jak tego debugować..
Widzę, że masz ustawione w tych linkach href="#collapseXX" więc zapewne po kliknięciu to jest dodawane do linka.

0

Udało mi się to dopracować :)
http://46.29.150.76/test/work.php problemem jest tylko to, że po kliknięciu nie zamykają się poprzednio otwarte zakładki :(
http://46.29.150.76/test/work.php#company120 - po wywołaniu linka z hashem otwiera się i centruje na wybranej firmie - to działa poprawnie.

Ma ktoś może pomysł jak zamknąć poprzednio otwarte okienka ?

0

Może po prostu zwiń wszystko przed rozwinięciem nowego?

$('.collapse').collapse('hide');

Linia 126 z work.php rzuca błędy:
TypeError: undefined is not an object (evaluating '$('#company'+ $(this).attr('id')).first().offset().top')

0

dziekuje, jednak ten komponent nie jest responssywne - a ten od bootstrapa jest... :( jak byś mógl mi pomóc z tym co mam obecnie, to byłbym bardzo wdzięczny :)

0
shagrin napisał(a):

Może po prostu zwiń wszystko przed rozwinięciem nowego?

$('.collapse').collapse('hide');

Linia 126 z work.php rzuca błędy:
TypeError: undefined is not an object (evaluating '$('#company'+ $(this).attr('id')).first().offset().top')

Tak, tylko to schowa wszystko przy wczytaniu strony, a ja chciałbym żeby po każdym klinięciu była rozłożona tylko jedna zakładka....\Teraz działa wszystko okey, tylko po otwarciu kolejnej zakłądki poprzednie się nie zamykają ;)

1 użytkowników online, w tym zalogowanych: 0, gości: 1