2017-02-16 52 views
0

我有一個無線組,並根據所選的值,我想要顯示特定區域並使其他2個區域消失。如何在Oracle Apex中使用JavaScript隱藏區域

但是,當我隱藏區域時,可見區域並不佔用所有可用空間,從而留下空白區域。

像這樣 Like this

我用的是$x_Hide('ItemID')方法類似建議一個網站,但它不會倒塌喜歡網頁的空間要求。

我注意到x_Hide實際上並沒有刪除該地區的div

div仍然存在,其內容也是如此。 The div is still present and it's content too

然後我嘗試了$x("ItemID").remove()功能,但這次 股利仍然存在,但缺少的內容。

有沒有辦法讓剩餘區域佔用所有可用空間?

回答

0

APEX的UI設計可以立即響應。您需要的只是獲取右側區域的句柄並隱藏它。如果做得對,您正在尋找的效果將會得到應用。如果您在使用javascript查找適當區域時遇到困難,那麼其他更簡單的解決方案就是使用動態操作功能,如果您剛剛開始使用APEX,則可以選擇此功能。動態操作提供了一種方法來聲明性地定義複雜的客戶端行爲,而不需要JavaScript。

參考甲骨文的文檔獲取更多信息的動態操作 - >link

+1

我想我忘了補充精度。我非常熟悉動態行爲。 JavaScript代碼處於動態操作中。我使用的是JavaScript,因爲邏輯更復雜,不能用只隱藏區域的動態操作完成。我無法在javascript中找到該區域。區域被功能隱藏,但其他可見區域未正確調整 – Hastaroth

+0

感謝您澄清,我對問題的理解有所不同。希望你找到你的答案。 – kapiell

0

我總是利用內置的Apex功能儘可能的。但是,如果我遇到古怪的行爲,我最後的手段將是一個自定義的JS/JQuery解決方案。所以下面是另一種選擇。

通過利用jQuery庫中附帶的頂點,你可以做到以下幾點:

1)添加靜態ID給您的目標區域;

2)然後,只需創建一個jQuery函數,將隱藏此區域:

function hideRegion(ID) { 
    $(ID).hide(); 
} 

將此代碼或者在你的外部JS文件,或您的頁面級(或內聯)JS(以下簡稱「全局變量聲明..「部分)。

3)然後,您可以致電(或執行)這個函數像這樣:

hideRegion('#the-static-id'); 

注:無論發生動態動作你觸發隱藏區域的這裏面。

4)然後再顯示它,創建jQuery函數:

function showRegion(ID) { 
    $(ID).show(); 
} 

將此代碼或者在你的外部JS文件,或您的頁面級(或內聯)JS(以下簡稱「全局變量聲明..「部分)。

3)然後,你可以調用這個函數像這樣:

showRegion('#the-static-id'); 

現在把這個動態的任何行動你觸發再次顯示區域內。

爲什麼這應該工作

.hide()動作頗爲相似,使得目標DIV在CSS一display:none屬性。因此,其他區域應占用您通過上述功能隱藏的區域留下的空間。同時,.show()將其還原爲其原始顯示樣式。

希望這會有所幫助!