У меня есть модальное всплывающее окно, которое изначально показывает некоторый контент, но расширяет div, если установлен флажок. Модальное окно расширяется правильно, но не меняет центр, пока вы не прокрутите его вверх или вниз. Есть ли событие javascript, которое я могу привязать к моей функции javascript, чтобы повторно центрировать весь модальный код?
Какое бы событие вы ни связали с прокруткой, чтобы заставить его повторно центрироваться, также привяжите это событие к событию раскрытия флажка / div (или вызовите его из другого события). Трудно сказать больше, не увидев кода.
Будьте осторожны, чтобы это не было привязано к событию изменения размера окна. Если это так, повторное центрирование может вызвать событие изменения размера в IE, что вызовет цикл бесконечности.
Если он привязан к событию изменения размера, разрешите 1 или 2 события изменения размера, но затем проигнорируйте остальные. (Я говорю «2», потому что в IE событие «восстановления» в окне вызовет как минимум 2 события изменения размера (3 в IE6).
Вот что это такое:
$find('ModalPopupExtenderClientID')._layout();
Например:
$find('detailsPopUpExtenderId')._layout();
и в aspx:
<ccl:ModalPopupExtender runat = "server" ID = "MyPopUpExtender" TargetControlID = "pop" PopupControlID = "PopUp" BehaviorID = "detailsPopUpExtenderId" BackgroundCssClass = "ModalBackground" />
BehaviorID
- это свойство, в котором можно установить идентификатор на стороне клиента.
Вы можете установить свойство BehaviourId
для элемента управления ModalPopupExtender
, чтобы не думать о ClientID $find('bahaviour id')._layout();
. В любом случае, хороший трюк. Спасибо!
Хорошо работает, спасибо. Я использовал свойство ClientID в коде, чтобы получить полный идентификатор клиента.