2013-07-11 54 views
8

我想在點擊圖像地圖區域時觸發Bootstrap手風琴的切換功能。麻煩的是它的行爲奇怪。當我第一次點擊某個區域時,會顯示所有的手風琴元素,然後在第二次點擊時全部變爲摺疊狀態,最後點擊第三次,之後按預期工作。我在jsfiddle上創建了一個例子(http://jsfiddle.net/adnank/SHdJm/4/)。從onclick觸發的Bootstrap手風琴切換行爲很奇怪

我已經嘗試了不同的設置,但是這個似乎與預期的一樣工作得最緊密。

<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

我已經重寫的onclick部分。它是短,但奇怪的行爲不是走了:S [我atempt ](http://jsfiddle.net/SHdJm/6/) – Brainfeeder

回答

7
  1. 當你與引導崩潰插件工作,並切換按鈕細分電子郵件你不需要調用合攏方法對每個項目,只爲一個。所以onclick處理程序可以看起來像:onclick="jQuery('#collapseOne').collapse('toggle');"。但在這種情況下,您還需要爲每個區域初始化切換父項選項。
  2. 您可以爲一個內容塊附加多個切換按鈕。所以onclick處理時並不需要,可與data-toggle="collapse" data-parent="#faq" data-target="#collapseOne"

工作示例來relaced:http://jsfiddle.net/SHdJm/8/

+0

謝謝,這正是我所尋找的。我試圖使用數據控件,但顯然我做的不當,所以另一種選擇是使用JS :) –

+0

我知道你不應該只是說'謝謝',但你幫我修復了一個錯誤一直在工作數小時。它總是那些愚蠢的小東西。我將'切換代碼'附加到每個手風琴上,因爲它們是動態創建的,這使得其他手風琴都不起作用(並且不工作,我的意思是這些圖標不會改變)。所以謝謝! – David

+0

祝福你:)這正是我正在尋找的東西 –