Files
g.hnyhua.cn/Mtxfw.VipSite/script/switch.js
2026-02-07 15:48:27 +08:00

66 lines
1.7 KiB
JavaScript

!function ($, doc) {
var each = function (arr, fn) {
for (let i = 0; i < arr.length; i++) {
fn(arr[i], i)
}
}
var amSwitch = {}
var _toggleCallback
var toggle = function (elm) {
var isActive = elm.classList.contains('am-active')
if (isActive) {
elm.classList.remove('am-active')
} else {
elm.classList.add('am-active')
}
return {
id: elm.dataset['switch'],
isActive: elm.classList.contains('am-active')
}
}
var handleEvent = function (e) {
var disabled = this.classList.contains('am-disabled')
if (disabled)
return
switch (e.type) {
case 'click':
var event = toggle(this)
_toggleCallback && _toggleCallback.bind(this)(event)
break;
default:
break;
}
}
var _init = function () {
var switches = doc.querySelectorAll('.am-switch')
each(switches, function (elm, i) {
if (!elm.dataset['switch']) {
elm.dataset['switch'] = i
}
elm.addEventListener('click', handleEvent)
elm.handle = elm.querySelector('.am-switch-handle')
})
}
_init()
amSwitch.toggle = function (toggleFn) {
_toggleCallback = toggleFn
}
amSwitch.val = function (id) {
var elms = doc.querySelectorAll('.am-switch[data-switch="' + id + '"]')
if (elms && elms.length > 0) {
return elms[0].classList.contains('am-active')
} else {
return false
}
}
$.amSwitch = amSwitch
}(window, document)