Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/jsf/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/7/image/5.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 通过ClientListerner以编程方式触发/模拟单击事件_Javascript_Jsf_Oracle Adf - Fatal编程技术网

Javascript 通过ClientListerner以编程方式触发/模拟单击事件

Javascript 通过ClientListerner以编程方式触发/模拟单击事件,javascript,jsf,oracle-adf,Javascript,Jsf,Oracle Adf,到目前为止,我已经按照文档的说明成功地使按钮的点击事件正常工作。我现在正在努力的是以编程方式触发ADF组件的click事件 源代码如下: <af:showDetailItem id="pane1" text="Panel Label 1" disclosed="true"> <af:commandButton text="commandButton 1" id="cb1"> <af:clientListener method="showNex

到目前为止,我已经按照文档的说明成功地使按钮的点击事件正常工作。我现在正在努力的是以编程方式触发ADF组件的click事件

源代码如下:

<af:showDetailItem id="pane1" text="Panel Label 1" disclosed="true">
    <af:commandButton text="commandButton 1" id="cb1">
        <af:clientListener method="showNext" type="action" />
    </af:commandButton>
</af:showDetailItem>

<af:showDetailItem id="pane2" text="Panel Label 2">
    <af:commandButton text="commandButton 2" id="cb2">
        <af:clientListener method="showNext" type="action" />
    </af:commandButton>
</af:showDetailItem>

<af:showDetailItem id="pane3" text="Panel Label 3">
    <af:commandButton text="commandButton 3" id="cb3">
        <af:clientListener method="showNext" type="action" />
    </af:commandButton>
</af:showDetailItem>

所以基本上我想实现的是,当点击按钮cb1时,我想模拟showDetailItem pane1的点击事件,以此类推……

您可以循环遍历手风琴组件的子级,以找出当前公开的showDetailItem。 然后将该值设置为exposed=false,并将下一个值设置为true。


<af:serverListner> 

是一个标记,可以与
一起使用,将事件传播到托管bean。此外,还可以将上述标记与
关联。希望能有所帮助。

如果你想在客户端上完全使用JavaScript操作手风琴,你需要利用JavaScript API来处理ADF Faces。 具体而言,这两项: 及


但是如何循环使用它们呢?在托管bean中,您可以获得对accordion组件的引用,并使用该组件的getChildren()方法找出其中的组件。如何编写JavaScript取决于HTML DOM树(您可能已经知道,JS在webbrowser中运行,而不是在webserver中运行)。很少有人使用OracleADF,但更多的人会亲自尝试,或者从头开始讲述上面发布的XHTML生成的HTML输出是什么样子的。其他人对安装OracleADF不感兴趣,只是为了计算实际生成的HTML输出。换句话说,如果您包含生成的HTML输出,或者完全重新构造问题,将HTML包含在真正的MCVE风格中,并重新定位于
[HTML]
用户,您就有更多的机会得到答案。@BalusC很公平。但我认为在生成的HTML上使用javascript并不是最好的做法(即使它可以完成这项工作),因为ADF有自己推荐的处理客户端交互的方法。在生成的HTML上使用javascript是一种选择,我自己也可以这样做,但我不想遵循ADF文档中给出的方法;i、 例如,通过使用
clientListener
标记。我不确定这是否是答案,因为我对ADF一无所知,更不用说它生成的HTML输出了,但这可能是一个正确方向的有用提示:如果所讨论的HTML DOM元素具有
onclick
属性,那么您可以通过
element.onclick()
触发它。或者,如果您想模拟鼠标单击HTML DOM元素,那么只需执行
元素。单击()
,这将触发其
onclick
,如果有,然后根据其返回值在DOM树中冒泡。不幸的是,我无法得到我正在寻找的答案。下面所有的答案都指向正确的方向,但我只寻找客户端解决方案,即;不使用bean……客户端解决方案需要了解客户端模型和视图。如我的第一条评论所示,以MVCE风格生成的HTML输出。很遗憾你没有早点看到/理解它。对不起。没有多大帮助。此外,我不希望有一个serverListener,因为它完全可以在客户端实现itself@asprin:如果没有这样做,请在Oracle社区()中提出一个问题,以获得更好的可见性。您好,Sid。我已经在那里发过帖子了。这是我问的第一个地方
<af:serverListner>