Я пытаюсь исправить маленький плагин jQuery , который превращает HTML-флажок в графический.Проблема, с которой я сталкиваюсь, заключается в том, что если я изменяю свойство «флажок» в флажке, событие change
не запускается, и, следовательно, графическое представление не обновляется.
Очевидно,Я могу просто вызвать событие изменения вручную, когда я изменяю свойство, но я бы хотел найти более общее решение, которое будет содержаться в плагине.
Осматривая, я нашел этот ответ , который указал мне на propHooks, который я могу использовать, чтобы получать уведомления при установке свойства.Итак, я могу написать это:
jQuery.propHooks.checked = {
set: function (el, value) {
el.checked = value;
$(el).trigger('change');
}
};
И теперь событие изменения запускается всякий раз, когда устанавливается свойство.
Меня беспокоит, что это не очень локализовано.Теперь я изменил поведение jQuery для всего на странице, просто ради этого небольшого плагина.Более того, я не уверен, что произойдет, если два плагина на странице будут использовать одну и ту же технику.Будет ли событие инициировано дважды, или второй хук перезапишет первый?Любое поведение кажется проблематичным.
Мне трудно найти документацию для propHooks.Как правильно его использовать?