2017-02-16 82 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()将其还原为其原始显示样式。

希望这会有所帮助!