В дополнение к ответу BalusC, вот пример, где щелчок по компоненту с id=placeholder
(возможно, ссылкой или кнопкой) откроет другой компонент (id=menu
) непосредственно под компонентом запуска.Если мышь отвести от запускающего компонента, меню исчезнет:
<script type="text/javascript">
jQuery(document).ready(function() {
jQuery("#placeholder").click(function(event) {
//get the position of the placeholder element
var pos = jQuery(this).offset();
var height = jQuery(this).height();
//show the menu directly below the placeholder
jQuery("#menu").css( { "left": pos.left + "px", "top": (pos.top + height) + "px" } );
jQuery("#menu").show();
});
// hide the menu on mouseout
jQuery("#placeholder").mouseout(function(event) {
jQuery("#menu").hide();
});
});
</script>
Компонент с id=menu
может быть div
или jsf h:panelGroup
или любым другим компонентом.Атрибут style
с display: none
первоначально скрывает компонент:
<h:panelGroup style="position: absolute; display: none;" id="menu">
<!-- content here -->
</h:panelGroup>
Убедитесь, что селектор идентификатора jQuery получает правильный идентификатор компонента.Например, если ваши элементы находятся внутри формы с id=form1
, вызов jQuery должен выглядеть примерно так:
jQuery("#form1\\:placeholder").click(function(event)
Обратите внимание на двойной обратный слеш.