Wicket ModalWindow: щелкните за пределами модального окна, чтобы закрыть

StackOverflow https://stackoverflow.com/questions/6333735

  •  27-10-2019
  •  | 
  •  

Вопрос

Мне нужно добавить поведение в ModalWindow, чтобы, когда пользователь щелкает мышью за пределами модального окна, при соблюдении определенного условия (проверено на стороне сервера в моем методе respond()) модальное окно отклоняется.

Я попытался реализовать что-то на основе этого ответа .Проблема в том, что я не могу прикрепить прослушиватель кликов к div модального окна, потому что он не добавляется в DOM до тех пор, пока модальное окно не будет показано (в этом примере к самому документу прикрепляется код keyup).

Я подумал о расширении ModalWindow и добавлении JS через getShowJavascript(), но тогда у меня нет никаких средств, чтобы подключить его к методу AbstractDefaultAjaxBehavior.respond() для теста.

Это было полезно?

Решение

Я решил это, добавив поведение не к модальному, а к виджету, который я добавляю к модальному с помощью ModalWindow.setContent().Когда мой виджет добавляется в модальное окно, div маски присутствует в DOM, и я могу успешно прикрепить обработчик кликов.

А именно:

родовое слово

Обратите внимание, что я несколько сомнительно зависим от маски модального окна, имеющей класс с именем "wicket-mask-dark";это может быть не так, если вы измените настройки CSS, используемые генератором кода.

Лицензировано под: CC-BY-SA с атрибуция
Не связан с StackOverflow
scroll top