Итак, у вас есть:
- Функция A, которая обновляет скрытый ВХОД.
- Функция B, которая должна вызываться при обновлении INPUT.
Почему бы не создать свое собственное "событие", которое эта функция A вызывает / отправляет всякий раз, когда она работает?
Я полагаю, что большинство Javascript-фреймворков довольно легко поддерживают концепцию пользовательских событий, но это всего лишь серия вызовов функций.
Например, создайте некоторый объект D, который представляет диспетчер для одного события. Да, это глупо, но я пытаюсь сделать концепцию простой. Этот объект D содержит список функций, которые «зарегистрировались» для своего события, и когда событие отправляется, он вызывает эти функции.
Что-то вроде:
var d = (function() {
var funcs = [];
function fire() {
for (var i=0; i<funcs.length; ++i) {
funcs[i].call();
}
}
function register(newfunc) {
funcs.push(newfunc);
}
return {
fire: fire,
register: register
};
})();
Вам осталось сделать только две вещи - сделать функцию A запускающей событие:
function A() {
// do stuff to update the INPUT
d.fire();
}
, а также, onload
, «зарегистрировать» функцию B, вызываемую при возникновении события:
d.register(B);
Этот подход поддерживает принцип разделения модулей (или как бы он ни назывался), поскольку A и B ничего не знают друг о друге и должны знать только о третьем объекте.