2014-03-31 19 views
1

我使用引導程序垂直按鈕組作爲複選框樣式的UI來控制this mapbox.js-based interactive map上的圖層。該層控制功能的偉大工程,但由於某些原因的按鈕:Bootstrap活動按鈕狀態持續存在

  • 負荷在正常狀態下(他們應該)
  • 進入活動狀態點擊時(他們應該)
  • 保留活動狀態的顏色,當他們下一次點擊(哭臉的表情符號)

是這樣的:

bootstrap buttons

我的懷疑是我的onclick函數干擾了引導按鈕組的本機行爲,但我不能爲我的生活弄清楚如何。這是我目前擁有該功能,同時管理按鈕類更新和地圖分層更新:

link.onclick = function(e) { 
    e.preventDefault(); 
    e.stopPropagation(); 

    if (map.hasLayer(layer)) { 
     map.removeLayer(layer); 
     this.className = 'btn btn-primary'; 
    } else { 
     map.addLayer(layer); 
     this.className = 'active btn btn-primary'; 
    } 
}; 

鑑於這種情況,我怎麼可以讓我的按鈕準確地取消?

回答

1

這應該修復它,只需添加stop()功能,以您的else語句,這樣它會從以前的按鈕active類,並把它添加到點擊的按鈕。

if (map.hasLayer(layer)) { 
     map.removeLayer(layer); 
     this.className = 'btn btn-primary'; 
    } else { 
     map.addLayer(layer); 
     this.stop().className = 'active btn btn-primary'; 
    } 
+0

我實際上已經設法使用列出的解決方案,但這很瞭解'stop()'函數;它會派上用場。謝謝! –

0

雖然它並沒有真正意義,我爲什麼會這樣,我已經解決了這個問題一個非常簡單的變化:

而是與<button>元素構建的按鈕,我將它們切換爲<a>元素。現在完美運作。如果有人能解釋爲什麼,我很樂意聽到它。