class eventBinding { constructor() { this.element = {} } static event = {} getEvent(name) { return eventBinding.event[name] } getEventAll() { return eventBinding.event } setEvent(name, event) { eventBinding.event[name] = event } on(that, elements) { for (let i = 0; i < elements.length; i++) { let Event = [] let isEvent = false let removeName = [] if (!elements[i] ||!elements[i].attributes) { continue } for (let m of elements[i].attributes) { switch (m.name) { case '@model': { isEvent = true if (elements[i].type == 'checkbox') { Event.push((e) => { that[m.value] = e.target.checked }) elements[i].checked = that[m.value] } else { Event.push((e) => { let value = e.target.value if (e.target.type == 'number') { if (e.data != '.' && (e.data != '-' || e.target.value)) { value = Number(value) if((e.target.max) && value>Number(e.target.max)) { value = Number(e.target.max) } if((e.target.min) && value { if (typeof (that[m.value]) === 'function') { that[m.value](e) } }); removeName.push(m.name) // elements[i].attributes.removeNamedItem(m.name) break; } case '@change': { isEvent = true Event.push((e) => { let value = e.target.value if(e.target.type == 'number' && value!='') { value = Number(value) e.target.value = value } if (typeof (that[m.value]) === 'function') { that[m.value](e, value) } }) break; } } // elements[i].attributes[m] = undefined } for(let n=0;n { for (let t = 0; t < Event.length; t++) { Event[t](e) } }); } } } } const EventBinding = new eventBinding(); export default EventBinding;