私は縦スクロールバーでカレンダーのようなビューを持っています。場所をクリックすると、私はカレンダーエントリのデータを入力できるpopupPanelを表示します。 popupPanelのhide()が呼び出されると、メインビューのスクロールバーが一番上にリセットされます。どうして?rich:popupPanel hideスクロールバーをリセットします
popupPanelを開く前にscrollTopを保存して閉じた後に復元するようにしましたが、スクロールバーがそのようにちらつくため、美しくありません。
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とはあまり関係がありません...しかし、ポップアップでの値の提出を含めてイベントを処理する方法は、スクロールバーをリセットしません。 ...ことはできませんのonclickに 'falseを返す'
感謝の追加、 ミロのファンデジー
RichFacesの-4.1、MyFacesの-2.1.6
私の例では、問題とはあまりありませんでした。 –