Q
獲取組件的座標
2
A
回答
3
除了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選擇獲取該組件的正確的ID。例如。如果你的元素是一個形式裏面有id=form1
,jQuery的呼叫必須是這個樣子:
jQuery("#form1\\:placeholder").click(function(event)
注意雙反斜線。
5
不,沒有。位置依賴於瀏覽器(客戶端)。在客戶端也完全沒有JSF的手段,它只是純粹的HTML/CSS/JS。該位置只能從HTML DOM元素中提取。您必須將它從JS傳遞給JSF,或者完全使用JS而不是JSF完成業務工作。
隨着PrimeFaces附帶jQuery,檢索元素相對於文檔位置的最佳方法是使用jQuery.offset()
。
var $element = jQuery('#someid');
var offset = $element.offset();
var x = offset.left;
var y = offset.top;
// ...
-3
我推薦使用像RichFaces或IceFaces這樣的JSF組件庫。它們中的許多都具有AJAX功能和JavaScript庫集成,因此具有用於執行此類事情的組件。
相關問題
- 1. 在java中獲取組件座標
- 2. 獲取座標
- 3. 獲取jQuery元素數組的座標
- 4. 使用snap.svg獲取svg組的座標
- 5. 獲取google map_click事件的座標Ionic
- 6. JFreeChart獲取鼠標座標
- 7. 獲取QPushButton的座標
- 8. 獲取NMAMapMarker的座標
- 9. 獲取矩形的座標
- 10. 獲取元素的座標
- 11. 獲取網格的座標
- 12. 獲取imageview上的座標
- 13. 獲取GPS座標:Android的
- 14. 獲取表格的座標
- 15. 獲取面板的座標
- 16. 獲取ActionEvent的座標
- 17. 獲取glFrustum的座標
- 18. 獲取組件可見區域的全局座標
- 19. 獲取並設置Flex AS3中組件的全局座標
- 20. 從GridBagLayout中的特定座標獲取組件
- 21. 如何使用java中的google api獲取兩組座標的座標
- 22. PHP從KML文件獲取座標
- 23. 獲取鼠標座標的Qt的OpenGL
- 24. 獲取圖形座標Matplotlib註釋標籤的座標
- 25. 從HashMap獲取座標
- 26. Jquery JRAC獲取座標
- 27. AS3 - 獲取邊緣座標
- 28. 獲取Ipad touchstart座標
- 29. WP7獲取設備座標
- 30. Winfo_x winfo_y獲取座標
我正在使用primefaces,但我不知道這樣的設施.. –
我也不是很熟悉那個。但是,如果您發現某個功能可以開箱即用,那麼沒有任何技術可以阻止您添加更多的庫。他們(應該)都很好地一起玩。 – Mac
您應該查看服務器端(JSF)和客戶端技術(javascript)的差異。 –