У меня есть вид календаря с вертикальной полосой прокрутки.Как только вы нажимаете на местоположение, я показываю всплывающую панель, в которую можно вводить данные для записи календаря.Как только функция hide () в popupPanel вызывается, полоса прокрутки основного вида сбрасывается в верхнюю часть.Почему?
Теперь я сохраняю scrollTop перед открытием popupPanel и восстанавливаю его после закрытия, но это не красиво, потому что полоса прокрутки мигает таким образом.
У кого-нибудь есть предложения относительно того, почему позиция полосы прокруткитронут, скрыв popupPanel?
пример:
<!DOCTYPE html PUBLIC "-//W3C//DTD XHTML 1.0 Transitional//EN" "http://www.w3.org/TR/xhtml1/DTD/xhtml1-transitional.dtd">
<html
xmlns="http://www.w3.org/1999/xhtml"
xmlns:h="http://java.sun.com/jsf/html"
xmlns:f="http://java.sun.com/jsf/core"
xmlns:a4j="http://richfaces.org/a4j"
xmlns:ui="http://java.sun.com/jsf/facelets"
xmlns:rich="http://richfaces.org/rich"
xmlns:fn="http://java.sun.com/jsp/jstl/functions"
xmlns:c="http://java.sun.com/jsp/jstl/core"
>
<h:head>
</h:head>
<h:body>
<a4j:log id="log" level="INFO" mode="popup" hotkey="M"/> <!-- Ctrl+Shift+M -->
<h:form id="formId">
Click anywhere in the div to show the popup...
<rich:popupPanel id="popupTest" width="200" height="150" modal="true">
<f:facet name="header">
Popup panel test
</f:facet>
<f:facet name="controls">
<h:outputLink value="#" onclick="#{rich:component('popupTest')}.hide(); return false;">X</h:outputLink>
</f:facet>
And here some text...<br/>
<a href="#" onclick="#{rich:component('popupTest')}.hide(); return false;">Hide popup 1</a><br/>
<h:outputLink value="#" onclick="#{rich:component('popupTest')}.hide(); return false;">Hide popup 2</h:outputLink><br/>
<a href="#" onclick="console.log('click...');">Console message</a><br/>
</rich:popupPanel>
<div style="height:2000px; width:100px; border:1px solid green; background:grey;" onclick="#{rich:component('popupTest')}.show()"/>
</h:form>
</h:body>
</html>
Кажется, что любая обработка события браузером сбрасывает полосы прокрутки.Не имеет ничего общего с richfaces ... Но как обрабатывать событие, включая отправку значений во всплывающем окне, и по-прежнему не сбрасывать полосы прокрутки.Добавление 'return false' к клику будет невозможно ...
Спасибо, Мило ван дер Зее
Richfaces-4.1, MyFaces-2.1.6