1

javascript / jqueryでパネルスプリッターの折りたたみ/展開ボタンをクリックしようとしていますが、役に立ちません。

スプリッターの例を次に示します。2FpanelSplitter.jspx%40

ご覧のとおり、矢印の付いた小さなボタンをクリックすると、リージョンが折りたたまれます。要素を取得してクリックしようとしても、何も起こりません。

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

jquery スクリプトを読み込んでクリックをトリガーしても、何も起こりません。これがどのように機能するのか、スクリプトのクリックが無視される理由が少しわかりません。何か案は?

4

5 に答える 5

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>

クリックする前に展開されます:

代替テキスト

クリックすると折りたたまれます:

代替テキスト

于 2010-10-18T17:29:30.950 に答える
0

jQueryではonclick()ではなくclick()ですが、コードを確認すると$はjQueryではありません。このページに jQuery が含まれていますか?

于 2010-09-26T21:40:08.073 に答える
0

クリック イベントを作成しようとする代わりに、イベント ハンドラーがわかっている場合は、通常、そのメソッドを直接呼び出す方が適切です。jQuery での例を次に示します。

イベントハンドラのセットアップ

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

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

後でプログラムで呼び出す

clickEventHandler();
于 2010-09-26T22:03:19.930 に答える