2013-07-11 14 views
8

Chcę włączyć funkcję przełączania akordeonu Bootstrap na kliknięcie na obszarze mapy obrazu. Problem w tym, że zachowuje się dziwnie. Kiedy pierwszy raz kliknę obszar, wszystkie elementy akordeonu są pokazywane, a po drugim kliknięciu wszystkie stają się zwinięte, a na końcu trzecim kliknięciem, a następnie działają zgodnie z oczekiwaniami. Stworzyłem przykład na jsfiddle (http://jsfiddle.net/adnank/SHdJm/4/).Przełączanie akordeonu Bootstrap uruchamiane z onclick zachowuję się dziwnie

Próbowałem różnych konfiguracji, ale ten wydaje się działać najbliżej, jak się spodziewano.

<div class="accordion" id="faq"> 
<img src="http://www.vero.at/themes/vero/images/en/Leistungsspektrum.jpg" alt="Leistungssprektrum" id="kreis" usemap="#map1"> 
    <map name="map1"> 
      <area shape="poly" coords="220,240,290,135,365,175,366,238" alt="Risikoanalyse" onmouseover="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Risikoanalyse.jpg'" onmouseout="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Leistungsspektrum.jpg'" onclick="jQuery('#collapseOne').collapse('toggle');jQuery('#collapseTwo').collapse('hide');jQuery('#collapseThree').collapse('hide');jQuery('#collapseFour').collapse('hide');jQuery('#collapseFive').collapse('hide');jQuery('#collapseSix').collapse('hide');"> 
      <area shape="poly" coords="266,252,377,252,377,193,420,193,420,288,267,288" alt="Deckungskonzept" onmouseover="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Deckungskonzept.jpg'" onmouseout="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Leistungsspektrum.jpg'" onclick="jQuery('#collapseOne').collapse('hide');jQuery('#collapseTwo').collapse('toggle');jQuery('#collapseThree').collapse('hide');jQuery('#collapseFour').collapse('hide');jQuery('#collapseFive').collapse('hide');jQuery('#collapseSix').collapse('hide');"> 
      <area shape="poly" coords="270,340,400,340,450,302,400,423,360,420,356,376,276,378" alt="Ausschreibung" onmouseover="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Ausschreibung.jpg'" onmouseout="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Leistungsspektrum.jpg'" onclick="jQuery('#collapseOne').collapse('hide');jQuery('#collapseTwo').collapse('hide');jQuery('#collapseThree').collapse('toggle');jQuery('#collapseFour').collapse('hide');jQuery('#collapseFive').collapse('hide');jQuery('#collapseSix').collapse('hide');" style="cursor: pointer;"> 
      <area shape="poly" coords="207,395,330,395,345,465,207,465" alt="Vergabe" onmouseover="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Vergabe.jpg'" onmouseout="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Leistungsspektrum.jpg'" onclick="jQuery('#collapseOne').collapse('hide');jQuery('#collapseTwo').collapse('hide');jQuery('#collapseThree').collapse('hide');jQuery('#collapseFour').collapse('toggle');jQuery('#collapseFive').collapse('hide');jQuery('#collapseSix').collapse('hide');" style="cursor: pointer;"> 
      <area shape="poly" coords="48,320,222,314,220,350,188,417,188,474,95,434,47,329" alt="Vertragsbetreuung" onmouseover="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Vertragsbetreuung.jpg'" onmouseout="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Leistungsspektrum.jpg'" onclick="jQuery('#collapseOne').collapse('hide');jQuery('#collapseTwo').collapse('hide');jQuery('#collapseThree').collapse('hide');jQuery('#collapseFour').collapse('hide');jQuery('#collapseFive').collapse('toggle');jQuery('#collapseSix').collapse('hide');" style="cursor: pointer;"> 
      <area shape="poly" coords="11,313,11,210,66,98,92,115,90,235,189,235,189,289,52,310" alt="Schadensabwicklung" onmouseover="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Schadensabwicklung.jpg'" onmouseout="document.getElementById('kreis').src='http://www.vero.at/themes/vero/images/en/Leistungsspektrum.jpg'" onclick="jQuery('#collapseOne').collapse('hide');jQuery('#collapseTwo').collapse('hide');jQuery('#collapseThree').collapse('hide');jQuery('#collapseFour').collapse('hide');jQuery('#collapseFive').collapse('hide');jQuery('#collapseSix').collapse('toggle');" style="cursor: hand;"> 
    </map>   
<div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#faq" href="#collapseOne"> 
      1. Risk analyses 
     </a> 
    </div> 
    <div id="collapseOne" class="accordion-body collapse"> 
     <div class="accordion-inner"> 
      Lorem ipsum 
     </div> 
    </div> 
</div> 
<div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#faq" href="#collapseTwo"> 
      2. Coverage concepts 
     </a> 
    </div> 
    <div id="collapseTwo" class="accordion-body collapse"> 
     <div class="accordion-inner"> 
      Lorem ipsum 
     </div> 
    </div> 
</div> 
<div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#faq" href="#collapseThree"> 
      3. Tender 
     </a> 
    </div> 
    <div id="collapseThree" class="accordion-body collapse"> 
     <div class="accordion-inner"> 
      Lorem ipsum 
     </div> 
    </div> 
</div> 
<div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#faq" href="#collapseFour"> 
      4. Authorisation 
     </a> 
    </div> 
    <div id="collapseFour" class="accordion-body collapse"> 
     <div class="accordion-inner"> 
      Lorem ipsum 
     </div> 
    </div> 
</div> 
<div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#faq" href="#collapseFive"> 
      5. Contract handling 
     </a> 
    </div> 
    <div id="collapseFive" class="accordion-body collapse"> 
     <div class="accordion-inner"> 
      Lorem ipsum 
     </div> 
    </div> 
</div> 
<div class="accordion-group"> 
    <div class="accordion-heading"> 
     <a class="accordion-toggle" data-toggle="collapse" data-parent="#faq" href="#collapseSix"> 
      6. Claim settlement 
     </a> 
    </div> 
    <div id="collapseSix" class="accordion-body collapse"> 
     <div class="accordion-inner"> 
      Lorem ipsum 
     </div> 
    </div> 
</div> 

+0

mam przepisany onclick części .. To krócej, ale dziwne zachowanie nie znika: s [moja atempt ] (http://jsfiddle.net/SHdJm/6/) – Brainfeeder

Odpowiedz

7
  1. Podczas pracy z pluginem bootstrap upadku i przełączać przyciski są zgrupowane nie trzeba wywołać metodę zwijania dla każdej pozycji, tuż za drugim. Tak więc obsługa onclick może wyglądać następująco: onclick="jQuery('#collapseOne').collapse('toggle');". Ale w tym przypadku trzeba również zainicjować opcję przełączania nadrzędnego dla każdego obszaru.
  2. Możesz dołączyć więcej niż jeden przycisk przełączający dla jednego bloku treści. Więc onclick obsługi nie jest konieczne i może być relaced z przykładem data-toggle="collapse" data-parent="#faq" data-target="#collapseOne"

robocza: http://jsfiddle.net/SHdJm/8/

+0

Dziękuję, to jest dokładnie to, czego szukałem. Próbowałem użyć kontroli danych, ale oczywiście zrobiłem to niewłaściwie, więc inną opcją było użycie JS :) –

+0

Wiem, że nie powinieneś mówić "dziękuję", ale pomogłeś mi naprawić błąd, który zrobiłbym Pracowaliśmy godzinami. To zawsze głupie małe rzeczy. "Załączałem" mój kod przełączania do każdego akordeonu, ponieważ były one tworzone dynamicznie, co powodowało, że każdy inny akordeon nie działał (i przez brak pracy, mam na myśli ikony, które się nie zmieniają). Więc dziękuję! – David

+0

Błogosławię was :) To było dokładnie to, czego szukałem –

Powiązane problemy