2010-09-26 108 views
1

我试图用javascript/jquery点击面板拆分器collaplse /展开按钮,无济于事。如何以编程方式触发点击事件?

这里是分路器的一个例子:http://jdevadf.oracle.com/adf-richclient-demo/faces/components/index.jspx;jsessionid=GTYNMf7Mq2JD6L4v38yCdTh2HLplhJYLTGc1J1TjZFwmpZjcqh1n!-294683649?_afrLoop=28596129526428344&_afrWindowMode=0&_afrWindowId=null#%2Fcomponents%2FpanelSplitter.jspx%40

正如你所看到的,当你点击的小按钮的箭头,该区域的崩溃。如果我尝试获取元素并单击它,则什么都不会发生。

$("dmoTpl:innerVerticalSplitter::i").onclick() 

如果我加载jQuery脚本并触发点击,也没有任何反应。我有点困惑这是如何工作,为什么脚本点击被忽略。有任何想法吗?

回答

0

它是点击()不是onclick()与jQuery,但是当我检查你的代码$不是jQuery。你确定这个页面上有jQuery吗?

+0

从链接页面不使用jquery,no。我正在开发一个ADF项目,我的页面可以使用它,但我不认为有任何使用这两个项目的公开演示。 – jernej 2010-09-26 21:53:14

0

而不是试图创建一个点击事件,如果你知道事件处理程序,直接直接调用该方法通常会更好。这里是jQuery中的一个例子。事件处理程序

var clickEventHandler = function(event) { 
    ... 
}; 

$('#some-button').click(clickEventHandler); 

编程调用它的

安装后

clickEventHandler(); 
+0

关键是,我只想模仿用户点击从JavaScript/jQuery的。 “dmoTpl:innerVerticalSplitter :: i”似乎是这样做的锚点,但我并不真正了解它的工作原理。从jquery调用点击它什么都不做。 这是按钮的html: Bereich ausblenden jernej 2010-09-26 22:10:07

1

我不使用JQuery,但这里是用香草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> 

之前点击它展开:

alt text

,并单击它合拢后:

alt text

0

您可以使用jQuery的元素上触发一个事件。考虑触发各种事件的下面的代码。

$('#myElement').trigger('click'); 
$('#myElement').trigger('mousedown'); 
$('#myElement').trigger('touchstart'); 
相关问题