Например, внутри одного класса можно реализовать логику "preventDefault для события onContextMenu должен случаться только когда есть подписка на onHold" через отдельный обработчик события onContextMenu и расположить его рядом с обработчиком события onHold:
setup: function(element) {
const $element = $(element);
eventsEngine.on($element, CONTEXTMENU this._contextMenuHandler.bind(this));
if(touch || devices.isSimulator()) {
eventsEngine.on($element, HOLD, this._holdHandler.bind(this));
eventsEngine.on($element, CONTEXTMENU, (e) => {e.preventDefault();});
}
},
_contextMenuHandler: function(e) {
this._fireContextMenu(e);
},