mirror of
https://github.com/the-djmaze/snappymail.git
synced 2026-07-13 03:27:39 +03:00
ko.utils.registerEventHandler to native addEventListener
This commit is contained in:
parent
8babd10f69
commit
9014f08f35
6 changed files with 16 additions and 14 deletions
|
|
@ -18,7 +18,7 @@ ko.bindingHandlers['event'] = {
|
|||
var eventsToHandle = valueAccessor() || {};
|
||||
ko.utils.objectForEach(eventsToHandle, eventName => {
|
||||
if (typeof eventName == "string") {
|
||||
ko.utils.registerEventHandler(element, eventName, function (event) {
|
||||
element.addEventListener(eventName, function (event) {
|
||||
var handlerReturnValue;
|
||||
var handlerFunction = valueAccessor()[eventName];
|
||||
if (!handlerFunction)
|
||||
|
|
|
|||
|
|
@ -21,10 +21,13 @@ ko.bindingHandlers['hasfocus'] = {
|
|||
var handleElementFocusIn = handleElementFocusChange.bind(null, true);
|
||||
var handleElementFocusOut = handleElementFocusChange.bind(null, false);
|
||||
|
||||
ko.utils.registerEventHandler(element, "focus", handleElementFocusIn);
|
||||
ko.utils.registerEventHandler(element, "focusin", handleElementFocusIn);
|
||||
ko.utils.registerEventHandler(element, "blur", handleElementFocusOut);
|
||||
ko.utils.registerEventHandler(element, "focusout", handleElementFocusOut);
|
||||
var registerEventHandler = (event, handler) =>
|
||||
element.addEventListener(event, handler);
|
||||
|
||||
registerEventHandler("focus", handleElementFocusIn);
|
||||
registerEventHandler("focusin", handleElementFocusIn);
|
||||
registerEventHandler("blur", handleElementFocusOut);
|
||||
registerEventHandler("focusout", handleElementFocusOut);
|
||||
|
||||
// Assume element is not focused (prevents "blur" being called initially)
|
||||
element[hasfocusLastValue] = false;
|
||||
|
|
|
|||
|
|
@ -2,7 +2,7 @@ ko.bindingHandlers['submit'] = {
|
|||
'init': (element, valueAccessor, allBindings, viewModel, bindingContext) => {
|
||||
if (typeof valueAccessor() != "function")
|
||||
throw new Error("The value for a submit binding must be a function");
|
||||
ko.utils.registerEventHandler(element, "submit", event => {
|
||||
element.addEventListener("submit", event => {
|
||||
var handlerReturnValue;
|
||||
var value = valueAccessor();
|
||||
try { handlerReturnValue = value.call(bindingContext['$data'], element); }
|
||||
|
|
|
|||
|
|
@ -49,7 +49,7 @@ ko.bindingHandlers['textInput'] = {
|
|||
};
|
||||
|
||||
var onEvent = (event, handler) =>
|
||||
ko.utils.registerEventHandler(element, event, handler);
|
||||
element.addEventListener(event, handler);
|
||||
|
||||
onEvent('input', updateModel);
|
||||
|
||||
|
|
|
|||
|
|
@ -12,6 +12,8 @@ ko.bindingHandlers['value'] = {
|
|||
var eventsToCatch = new Set;
|
||||
var requestedEventsToCatch = allBindings.get("valueUpdate");
|
||||
var elementValueBeforeEvent = null;
|
||||
var registerEventHandler = (event, handler) =>
|
||||
element.addEventListener(event, handler);
|
||||
|
||||
if (requestedEventsToCatch) {
|
||||
// Allow both individual event names, and arrays of event names
|
||||
|
|
@ -47,9 +49,9 @@ ko.bindingHandlers['value'] = {
|
|||
elementValueBeforeEvent = ko.selectExtensions.readValue(element);
|
||||
ko.utils.setTimeout(valueUpdateHandler, 0);
|
||||
};
|
||||
eventName = eventName.substring("after".length);
|
||||
eventName = eventName.substring(5);
|
||||
}
|
||||
ko.utils.registerEventHandler(element, eventName, handler);
|
||||
registerEventHandler(eventName, handler);
|
||||
});
|
||||
|
||||
var updateFromModel;
|
||||
|
|
@ -96,7 +98,7 @@ ko.bindingHandlers['value'] = {
|
|||
var updateFromModelComputed;
|
||||
ko.bindingEvent.subscribe(element, ko.bindingEvent.childrenComplete, () => {
|
||||
if (!updateFromModelComputed) {
|
||||
ko.utils.registerEventHandler(element, "change", valueUpdateHandler);
|
||||
registerEventHandler("change", valueUpdateHandler);
|
||||
updateFromModelComputed = ko.computed(updateFromModel, { disposeWhenNodeIsRemoved: element });
|
||||
} else if (allBindings.get('valueAllowUnset')) {
|
||||
updateFromModel();
|
||||
|
|
@ -105,7 +107,7 @@ ko.bindingHandlers['value'] = {
|
|||
}
|
||||
}, null, { 'notifyImmediately': true });
|
||||
} else {
|
||||
ko.utils.registerEventHandler(element, "change", valueUpdateHandler);
|
||||
registerEventHandler("change", valueUpdateHandler);
|
||||
ko.computed(updateFromModel, { disposeWhenNodeIsRemoved: element });
|
||||
}
|
||||
},
|
||||
|
|
|
|||
3
vendors/knockout/src/utils.js
vendored
3
vendors/knockout/src/utils.js
vendored
|
|
@ -96,9 +96,6 @@ ko.utils = {
|
|||
|
||||
setTimeout: (handler, timeout) => setTimeout(handler, timeout),
|
||||
|
||||
registerEventHandler: (element, eventType, handler) =>
|
||||
element.addEventListener(eventType, handler, false),
|
||||
|
||||
triggerEvent: (element, eventType) => {
|
||||
if (!(element && element.nodeType))
|
||||
throw new Error("element must be a DOM node when calling triggerEvent");
|
||||
|
|
|
|||
Loading…
Add table
Add a link
Reference in a new issue