2 回答

TA貢獻1851條經驗 獲得超4個贊
如果您希望在選中或取消選中復選框時更改類,則需要一個事件處理程序。處理程序可以檢查每個 LI 是否包含選中的按鈕。
$(".wc_payment_method :radio").click(function() {
$(".wc_payment_method").each(function() {
$(this).toggleClass("is-checked", $(this).find(":radio:checked").length > 0);
});
});
.is-checked {
background-color: pink;
}
<script src="https://cdnjs.cloudflare.com/ajax/libs/jquery/3.3.1/jquery.min.js"></script>
<ul>
<li class="wc_payment_method payment_method_paypal">
<input id="payment_method_paypal" type="radio" class="input-radio" name="payment_method" value="paypal">
<label for="payment_method_paypal">PayPal</label>
</li>
<li class="wc_payment_method payment_method_credit">
<input id="payment_method_credit" type="radio" class="input-radio" name="payment_method" value="credit">
<label for="payment_method_paypal">Credit Card</label>
</li>
</ul>

TA貢獻1995條經驗 獲得超2個贊
您的代碼僅向輸入標記添加一個類。要在單擊事件上添加特定類,您必須使用 jquery 中的 $().click 方法。
jQuery(function ($) {
function addClass() {
$(".wc_payment_method input:checked").each(function() {
$(this).closest('li').addClass('yourClass');
$(this).addClass("is-checked");
alert(this.id + " is checked");
});
}
addClass();
$(".wc_payment_method input").click(function(){
addClass();
});
});
<script
src="https://code.jquery.com/jquery-3.5.0.min.js"
integrity="sha256-xNzN2a4ltkB44Mc/Jz3pT4iU1cmeR0FkXs4pru/JxaQ="
crossorigin="anonymous"></script>
<ul>
<li class="wc_payment_method payment_method_paypal">
<input id="payment_method_paypal" type="radio" class="input-radio" checked name="payment_method" value="paypal">
<label for="payment_method_paypal">PayPal</label>
</li>
<li class="wc_payment_method payment_method_paypal1">
<input id="payment_method_paypal1" type="radio" class="input-radio" name="payment_method1" value="paypal2">
<label for="payment_method_paypal1">PayPal</label>
</li>
</ul>
- 2 回答
- 0 關注
- 216 瀏覽
添加回答
舉報