代码将会在本站运行期间永久保留,以便提供后续后续服务与保障
本文章定制用户与上一篇签到奖励余额用户相同
教程
打开子比主题根目录下的/zibpay/functions/zibpay-ajax.php
配合使用的JavaScript
$(document).ready(function() {
// 初始化 MutationObserver 和事件监听器
function initObserversAndEvents() {
var payvipModal = document.querySelector('.payvip-modal');
if (payvipModal) {
// 立即清空支付方式的选择状态并更新价格显示
clearPaymentSelection();
updatePriceDisplay('default'); // 默认状态为非余额支付
// 定义一个观察者实例
var observer = new MutationObserver(function(mutations) {
mutations.forEach(function(mutation) {
if (mutation.addedNodes.length > 0) {
// 当有新的节点被添加时,重新初始化事件监听器和价格显示
initPaymentMethodEvents();
clearPaymentSelection(); // 再次清空支付选择状态
updatePriceDisplay('default'); // 更新为默认价格显示
}
});
});
// 配置观察选项
var config = { childList: true, subtree: true };
// 开始观察目标节点(例如,包含支付方式的容器)
observer.observe(payvipModal, config);
} else {
// 如果 .payvip-modal 不存在,则稍后再试
setTimeout(initObserversAndEvents, 500); // 每隔500毫秒检查一次
}
}
// 初始化支付方式选择事件监听器
function initPaymentMethodEvents() {
$(document).off('click', '.payment-method-radio').on('click', '.payment-method-radio', function(){
var selectedPaymentMethod = $(this).data('value');
// 更新选中的支付方式样式
$('.payment-method-radio').removeClass('active');
$(this).addClass('active');
updatePriceDisplay(selectedPaymentMethod);
});
// 监听会员等级切换事件
$(document).on('click', '[data-toggle="tab"][href^="#tab-payvip-"]', function(){
// 清空支付方式的选择状态
clearPaymentSelection();
// 更新价格显示为默认状态(非余额支付)
updatePriceDisplay('default');
});
}
// 更新价格显示逻辑
function updatePriceDisplay(paymentMethod) {
$('.zib-widget.vip-product').each(function() {
var $product = $(this);
var originalPrice = $product.find('.original-price.relative');
var productPrice = $product.find('.product-price.c-red');
if (paymentMethod === 'balance') {
// 显示 original-price relative,隐藏 product-price c-red
originalPrice.show();
productPrice.hide();
} else {
// 显示 product-price c-red,隐藏 original-price relative
originalPrice.hide();
productPrice.show();
}
});
}
// 清空支付方式的选择状态
function clearPaymentSelection() {
// 移除所有支付方式的选择状态
$('.payment-method-radio').removeClass('active');
// 也可以考虑将 radio 的 checked 属性移除
$('.payment-method-radio').prop('checked', false);
}
// 初始调用一次以确保现有元素也绑定了事件和正确的价格显示
initPaymentMethodEvents();
// 尝试初始化 MutationObserver 和事件监听器,并立即清空支付类别选中状态
initObserversAndEvents();
});
配合使用的CSS
.vip-product .original-price {
font-size: 22px;
color: #fc0534;
}
.original-price::before {
display:none
}
.vip-product .product-price {
display: none;
}
© 版权声明
文章版权归作者所有,未经允许请勿转载。
THE END
暂无评论内容