我正在尝试使用javascript / jquery点击面板拆分器collaplse / expand按钮,但无济于事。
如您所见,当您单击带箭头的小按钮时,区域会崩溃。如果我尝试获取元素并单击它,则没有任何反应。
$("dmoTpl:innerVerticalSplitter::i").onclick()
如果我加载jquery脚本并触发click,也没有任何反应。我有点困惑这一切是如何工作的以及为什么忽略脚本点击。有什么想法吗?
答案 0 :(得分:1)
我不使用JQuery,但这是一个使用vanilla javascript和<af:clientListener/>
标记的示例。
<?xml version='1.0' encoding='UTF-8'?>
<jsp:root xmlns:jsp="http://java.sun.com/JSP/Page" version="2.1" xmlns:af="http://xmlns.oracle.com/adf/faces/rich" xmlns:f="http://java.sun.com/jsf/core">
<af:resource type="javascript">
function toggleSplitter(evt) {
comp = evt.getSource().findComponent('ps1');
if (comp) {
comp.setProperty("collapsed", !comp.getProperty("collapsed"));
}
else {
alert('not found');
}
}
</af:resource>
<af:panelStretchLayout id="psl1">
<f:facet name="center">
<af:panelSplitter id="ps1">
<f:facet name="first">
<af:outputText value="First" id="ot1"/>
</f:facet>
<f:facet name="second">
<af:panelFormLayout id="pfl1">
<f:facet name="footer"/>
<af:commandButton text="Toggle" id="cb1" immediate="true">
<af:clientListener method="toggleSplitter" type="click"/>
</af:commandButton>
<af:outputText value="Second" id="ot2"/>
</af:panelFormLayout>
</f:facet>
</af:panelSplitter>
<!-- id="af_one_column_stretched" -->
</f:facet>
</af:panelStretchLayout>
</jsp:root>
点击之前展开:
点击后折叠:
答案 1 :(得分:0)
使用jQuery点击()不是onclick(),但是当我检查你的代码时,$不是jQuery。你确定这个页面上有jQuery吗?
答案 2 :(得分:0)
如果你知道事件处理程序,通常最好直接直接调用该方法,而不是尝试创建click事件。这是jQuery中的一个例子。
设置事件处理程序
var clickEventHandler = function(event) {
...
};
$('#some-button').click(clickEventHandler);
稍后以编程方式调用
clickEventHandler();
答案 3 :(得分:0)
您可以使用JQuery触发元素上的事件。请考虑下面的代码,它会触发各种事件。
$('#myElement').trigger('click');
$('#myElement').trigger('mousedown');
$('#myElement').trigger('touchstart');
答案 4 :(得分:0)
以编程方式展开/折叠af:panelBox,创建事件并以编程方式对其进行排队,如下所示。
要折叠 af:panelBox
DisclosureEvent discEvent = new DisclosureEvent(panelBoxCompObj, false);
discEvent.queue();
展开 af:panelBox
DisclosureEvent discEvent = new DisclosureEvent(panelBoxCompObj, true);
discEvent.queue();