首次推送
This commit is contained in:
66
Mtxfw.VipSite/script/switch.js
Normal file
66
Mtxfw.VipSite/script/switch.js
Normal file
@@ -0,0 +1,66 @@
|
||||
!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)
|
||||
Reference in New Issue
Block a user