javascript - 多個按鈕點(diǎn)擊顯示不同內(nèi)容后,怎么讓其內(nèi)容顯示一次,其他的按鈕點(diǎn)擊的內(nèi)容隱藏呢
問題描述
機(jī)場分區(qū)是一堆按鈕,,我想要實(shí)現(xiàn)點(diǎn)擊江蘇吧,就只顯示江蘇,,不想讓其他的那些按鈕點(diǎn)擊后的內(nèi)容--例如安徽啊顯示。
目前我是,每個按鈕都加了點(diǎn)擊事件,然后顯示地名;但是第一次點(diǎn)擊完畢后他就永遠(yuǎn)顯示在地圖上了,,下面是一個按鈕的例子。。請問我怎么讓他才能點(diǎn)擊的時候只顯示一次;其他的內(nèi)容隱藏啊$('.bnt-ShanDong').on(’click’, function () {
// 百度地圖API功能var initPoint = new BMap.Point(117.215278, 36.8569444);map.centerAndZoom(initPoint, 8);var myIcon = new BMap.Icon('../images/marker.png', new BMap.Size(32, 32));var marker = new BMap.Marker(initPoint, { icon: myIcon }); // 創(chuàng)建標(biāo)注map.addOverlay(marker);//marker.setAnimation(BMAP_ANIMATION_BOUNCE);var label = new BMap.Label('山東分局', { offset: new BMap.Size(30, 5) });label.setStyle({ color: '#fff', fontSize: '12px', backgroundColor: '0.05', border: '0', height: '20px', lineHeight: '20px', fontFamily: '微軟雅黑'});marker.setLabel(label);
})
問題解答
回答1:最簡單的一種方式就是每次點(diǎn)擊事件觸發(fā)后,先將所有的地區(qū)都隱藏,然后根據(jù)當(dāng)前點(diǎn)擊的this確定當(dāng)前地區(qū)然后顯示當(dāng)前地區(qū)
回答2:首先可以把所有的按鈕增加一個統(tǒng)一的class例如叫btn-test,然后給每個按鈕增加一個自定義屬性例如data-name,每一個都放這個按鈕代表哪個分局,然后給所有這樣的按鈕統(tǒng)一增加監(jiān)聽,根據(jù)data-name的值判斷點(diǎn)擊的是哪一個,然后先刪除地圖上所有的圖標(biāo),再只顯示點(diǎn)擊的那個:
$(’.btn-test’).click(function(){ 第一步先刪除所屬分局的圖標(biāo) 然后顯示點(diǎn)擊的按鈕對應(yīng)的圖標(biāo) switch(this.data(’name’)){case '山東分局': .顯示山東分局對應(yīng)的圖標(biāo)break;... }})回答3:
這個跟三級聯(lián)動思路差不多吧,點(diǎn)擊任意按鈕先清空地圖內(nèi)容,然后再根據(jù)this把對應(yīng)的內(nèi)容傳進(jìn)去
回答4:點(diǎn)擊事件傳入一個ID標(biāo)識 每個按鈕都有自己特定的ID 在創(chuàng)建之前點(diǎn)之前隱藏所有點(diǎn) 并且判斷你這個ID點(diǎn)是否存在
存在再將這個點(diǎn)的狀態(tài)更改為顯示 不存在 創(chuàng)建的新的點(diǎn)并把ID當(dāng)屬性寫入新創(chuàng)建點(diǎn)
