private void removeHandler(
      final BaseHtmlElement elem,
      final EventType eventType,
      final IJsFunc handler,
      final EventHandlerContainer container) {

    if (handler == null) {
      return;
    }

    List<EventsToHandlerPair> pairs = container.getElements().get(elem);
    DapEventHandlerAdapter adapter;
    if (pairs == null) {
      return;
    }

    for (EventsToHandlerPair pair : pairs) {
      if (pair.getEventType() != eventType) {
        continue;
      }
      if (!(pair.getHandler() instanceof DapEventHandlerAdapter)) {
        continue;
      }
      adapter = (DapEventHandlerAdapter) pair.getHandler();
      if (adapter == null || adapter.getJsFunc() != handler) {
        continue;
      }
      pairs.remove(pair);
      return;
    }
  }