这是indexloc提供的服务,不要输入任何密码
Skip to content

patchProp函数为元素添加监听函数时是不是要先用createInvoker函数包装监听函数? #96

@nongsia

Description

@nongsia

function patchProp(el, key, preValue, nextValue) {
if (isOn(key)) {
const invokers = el._vei || (el._vei = {});
const existingInvoker = invokers[key];
if (nextValue && existingInvoker) {
existingInvoker.value = nextValue; //这个invoker是一个函数,直接修改function.value是不是有点问题?我没有找到类似写法
} else {
const eventName = (key).slice(2).toLowerCase();
if (nextValue) {
const invoker = (invokers[key] = nextValue); //没用createInvoker包装函数去包装,所以invoker是一个函数
el .addEventListener(eventName, invoker);
} else {
el.removeEventListener(eventName, existingInvoker);
invokers[key] = undefined;
}
}
} else {
if (nextValue === null || nextValue === "") {
el.removeAttribute(key);
} else {
el.setAttribute(key, nextValue);
}
}
}

Metadata

Metadata

Assignees

No one assigned

    Labels

    No labels
    No labels

    Projects

    No projects

    Milestone

    No milestone

    Relationships

    None yet

    Development

    No branches or pull requests

    Issue actions