修改bug

This commit is contained in:
2025-08-22 18:46:29 +08:00
parent a7a743a394
commit ec41c867d4
3 changed files with 74 additions and 37 deletions

View File

@ -1,45 +1,89 @@
class eventBinding { class EventBinding {
constructor() { constructor() {
this.element = {} this.element = {}
} }
static event = {} static event = {}
getEvent(name) { getEvent(name) {
return eventBinding.event[name] return EventBinding.event[name]
} }
getEventAll() { getEventAll() {
return eventBinding.event return EventBinding.event
} }
setEvent(name, event) { setEvent(name, event) {
eventBinding.event[name] = event EventBinding.event[name] = event
} }
on(that, elements) { on(that, elements) {
this.element = {}
for (let i = 0; i < elements.length; i++) { for (let i = 0; i < elements.length; i++) {
let Event = []
let isEvent = false
let removeName = []
if (!elements[i] || !elements[i].attributes) { if (!elements[i] || !elements[i].attributes) {
continue; continue;
} }
let Event = {
'input': [],
'change': [],
'blur': [],
'click': []
}
let isEvent = false
let removeName = []
for (let m of elements[i].attributes) { for (let m of elements[i].attributes) {
switch (m.name) { switch (m.name) {
case '@model': { case '@model': {
isEvent = true isEvent = true
if (elements[i].type == 'checkbox') { if (elements[i].type == 'checkbox') {
Event.push((e) => { that[m.value] = e.target.checked }) Event.change.push((e) => { that[m.value] = e.target.checked })
elements[i].checked = that[m.value] elements[i].checked = that[m.value]
} }
else { else {
Event.push((e) => { if (elements[i].type == 'number') {
let value = e.target.value Event.input.push((e) => {
if (e.target.type == 'number') { if (e.target.value || e.target.value === 0) {
value = Number(value) let value = e.target.value
} value = Number(value)
that[m.value] = value if (e.data != '.' && (e.data != '-' || e.target.value)) {
}) if (((!e.target.max) && (!e.target.min)) || ((value <= Number(e.target.max)) && value >= Number(e.target.min))) {
// that[m.value] = value
value = value
}
if ((e.target.max) && value > Number(e.target.max)) {
value = Number(e.target.max)
}
if ((e.target.min) && value < Number(e.target.min)) {
value = Number(e.target.min)
}
// if ((e.target.dataset.min) && value < Number(e.target.dataset.min)) {
// value = Number(e.target.dataset.min)
// }
that[m.value] = value
}
}
})
Event.blur.push((e) => {
let value = e.target.value
if (e.target.value || (e.target.dataset.null !== 'undefined' && e.target.dataset.null !== '' && !Boolean(e.target.dataset.null))) {
value = Number(value)
if ((e.target.max) && value > Number(e.target.max)) {
value = Number(e.target.max)
}
if ((e.target.min) && value < Number(e.target.min)) {
value = Number(e.target.min)
}
if ((e.target.dataset.min) && value < Number(e.target.dataset.min)) {
value = Number(e.target.dataset.min)
}
}
that[m.value] = value
})
}
else {
Event.input.push((e) => {
that[m.value] = e.target.value
})
}
if (elements[i].nodeName == 'IMG') { if (elements[i].nodeName == 'IMG') {
elements[i].src = that[m.value] elements[i].src = that[m.value]
} }
@ -57,13 +101,13 @@ class eventBinding {
break; break;
} }
case '@click': { case '@click': {
elements[i].addEventListener('click', (e) => { isEvent = true
if (typeof (that.Dialog[m.value]) === 'function') { Event.click.push((e) => {
that.Dialog[m.value](e) if (typeof (that[m.value]) === 'function') {
that[m.value](e)
} }
}); })
removeName.push(m.name) removeName.push(m.name)
// elements[i].attributes.removeNamedItem(m.name)
break; break;
} }
} }
@ -74,19 +118,18 @@ class eventBinding {
} }
if (isEvent) { if (isEvent) {
let ventType = 'input' for (let key in Event) {
if (elements[i].tagName != 'INPUT' || elements[i].type == 'checkbox') { if (Event[key].length > 0) {
ventType = 'change' elements[i].addEventListener(key, (e) => {
} for (let t = 0; t < Event[key].length; t++) {
elements[i].addEventListener(ventType, (e) => { Event[key][t](e)
for (let t = 0; t < Event.length; t++) { }
Event[t](e) });
} }
}); }
} }
} }
} }
} }
const EventBinding = new eventBinding();
export default EventBinding; export default EventBinding;

View File

@ -3,7 +3,7 @@
*/ */
import Dialog from '../../../Obj/Element/Dialog'; import Dialog from '../../../Obj/Element/Dialog';
import { html } from "./_element"; import { html } from "./_element";
import EventBinding from '../../../Obj/Element/Dialog/eventBinding'; import EventBinding from './eventBinding';
import { syncData } from '../../MultiViewportMode' import { syncData } from '../../MultiViewportMode'
import Tools from '../../../Tools' import Tools from '../../../Tools'
import TimeLine from './TimeLine' import TimeLine from './TimeLine'

View File

@ -45,10 +45,6 @@ class EventBinding {
let value = e.target.value let value = e.target.value
value = Number(value) value = Number(value)
if (e.data != '.' && (e.data != '-' || e.target.value)) { if (e.data != '.' && (e.data != '-' || e.target.value)) {
if (((!e.target.max) && (!e.target.min)) || ((value <= Number(e.target.max)) && value >= Number(e.target.min))) {
// that[m.value] = value
value = value
}
if ((e.target.max) && value > Number(e.target.max)) { if ((e.target.max) && value > Number(e.target.max)) {
value = Number(e.target.max) value = Number(e.target.max)
} }
@ -58,10 +54,8 @@ class EventBinding {
if ((e.target.dataset.min) && value < Number(e.target.dataset.min)) { if ((e.target.dataset.min) && value < Number(e.target.dataset.min)) {
value = Number(e.target.dataset.min) value = Number(e.target.dataset.min)
} }
that[m.value] = value
} }
} })
})
Event.blur.push((e) => { Event.blur.push((e) => {
let value = e.target.value let value = e.target.value
if (e.target.value || (e.target.dataset.null !== 'undefined' && e.target.dataset.null !== '' && !Boolean(e.target.dataset.null))) { if (e.target.value || (e.target.dataset.null !== 'undefined' && e.target.dataset.null !== '' && !Boolean(e.target.dataset.null))) {