###### tags: `JavaScript` `前端切版技巧`
# 金流方式四選一,被選擇付款方式打勾並加上外框色(單選/複選效果)
### 本文章重點
### 1.用JS控制CSS
### 2.用JS控制只能四個單選一,禁止多選
### 3.用.class .class搭配JS打開/關起(toggle)class
###
BUTTON ONCLICK FUNCTION參考[本篇](https://hackmd.io/@harmonia/JS-BUTTON_ONCLICK_FUNCTION)
[stackoverflow搭配jQuery參考](https://stackoverflow.com/questions/37665863/using-jquery-to-select-only-one-element-of-a-type-at-a-time)
#### [作法一]
<iframe height="265" style="width: 100%;" scrolling="no" title="click and add tick" src="https://codepen.io/corly74/embed/OJRvLNr?height=265&theme-id=dark&default-tab=css,result" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
See the Pen <a href='https://codepen.io/corly74/pen/OJRvLNr'>click and add tick</a> by peiyun
(<a href='https://codepen.io/corly74'>@corly74</a>) on <a href='https://codepen.io'>CodePen</a>.
</iframe>
<br>
<br>
<p >
1.利用<kbd> < div class="虛擬open" > </ div> </kbd> 包覆
虛擬open的class,本身沒有樣式,是作為拿來控制操作開關使用,用Javascript or jQuery操作加入.
</p>
<p>
2.但是會發現一個問題,點擊第一個卡片時有達到我們要的效果:產生打勾和外光暈陰影效果,但是點擊第二個效果時,第一個點擊依然同時存在,但是金流方式一次只能選擇一個,不能同時使用兩種金流方式,所以每次點擊都要清掉原本添加的class,後來找到新的寫法,解決問題,請看方法二
</p>
#### [作法二]
<iframe height="265" style="width: 100%;" scrolling="no" title="click and add tick(single choice)" src="https://codepen.io/corly74/embed/NWRYKXW?height=265&theme-id=dark&default-tab=html,result" frameborder="no" loading="lazy" allowtransparency="true" allowfullscreen="true">
See the Pen <a href='https://codepen.io/corly74/pen/NWRYKXW'>click and add tick(single choice)</a> by peiyun
(<a href='https://codepen.io/corly74'>@corly74</a>) on <a href='https://codepen.io'>CodePen</a>.
</iframe>
<br>
<p>
之前把四種不同支付方式的open class和tick都單獨設不同class,這邊通通統一用一樣的<kbd>choice-card</kbd>,<kbd>openclass</kbd> ,<kbd>tick</kbd>和<kbd>card-shadow</kbd>.預設所有狀態都已經有加上<kbd>openclass</kbd> ,當選取點選<kbd>choice-card</kbd>先移除網頁裡所有<kbd>openclass</kbd>,再點選自身<kbd>this</kbd>上面加上<kbd>openclass</kbd>,以打開該支付方式<kbd>tick</kbd>和<kbd>tick</kbd>&<kbd>card-shadow</kbd>
</p>