1

Primefaces、jsfを使用しています。

私は次のデータテーブルを持っています:

<p:dataTable var="dataRow"
                first="#{wirkungsgradeEditBean.firstRowIndex}"
                value="#{wirkungsgradeEditBean.wirkgradList}" editable="true"
                id="table" paginator="true"
                rows="#{wirkungsgradeEditBean.rowsPerPage}"
                paginatorTemplate="{CurrentPageReport}  {FirstPageLink} {PreviousPageLink} {PageLinks} {NextPageLink} {LastPageLink} {RowsPerPageDropdown}"
                rowsPerPageTemplate="15,25,35">
                <p:column headerText="#{msg.table_wirkungsgrade_wirk4}">
                    <p:cellEditor>
                        <f:facet name="output">
                            <h:outputText value="#{dataRow.wirk4}" />
                        </f:facet>
                        <f:facet name="input">
                            <p:inputText value="#{dataRow.wirk4}" required="true" />
                        </f:facet>
                    </p:cellEditor>
                </p:column>
                <p:column headerText="#{msg.column_head_edit}">
                    <p:rowEditor />
                    <p:commandButton icon="ui-icon-close"
                        rendered="#{wirkungsgradeEditBean.renderDeleteButton}"
                        styleClass="rainstar-button-small-edit"
                        action="#{wirkungsgradeEditBean.btn_deleteEntryClick()}"
                        update=":form:table" widgetVar="delBut" >
                        <f:setPropertyActionListener value="#{dataRow}"
                            target="#{wirkungsgradeEditBean.selectedWirkgrad}" />
                    </p:commandButton>
                </p:column>
                <p:ajax event="rowEdit"
                    listener="#{wirkungsgradeEditBean.btn_editEntryClick}"
                    update=":form:table" />
                <p:ajax event="rowSelect"
                    listener="#{wirkungsgradeEditBean.selectRo()}"
                    update=":form:table" />
            </p:dataTable>

ここで、編集ボタン(鉛筆記号)が押されたときに削除ボタンを切り替えたいと思います。私は次のjqueryコンストラクトでそれを行います:

$(document).ready(function(){
        $("span.ui-row-editor span").click(function(){
            $(this).parent().parent().children("button").toggle();
        });
    });

これを初めて試す場合は、すべて問題ありません。しかし、もう一度試してみると、トグルは発生していません。

なにが問題ですか?!

4

2 に答える 2

1

編集ボタンをクリックすると、部分的な更新が行われ、テーブルが再作成され、ハンドラーが失われます。JSF を介して削除ボタンを制御する方が安全wirkungsgradeEditBean.renderDeleteButtonです。編集時に更新するだけです。

編集:別のオプションは、関数で使用することです:

$(document).on("click", "span.ui-row-editor span", function(){
  $(this).parent().parent().children("button").toggle();
});

ドキュメントではなく、よりローカライズされたものに微調整できますが、部分的な更新の影響を受けません。

于 2012-06-05T09:12:07.100 に答える
0

それ以外の

  $(this).parent().parent().children("button").toggle();

あなたが使用することができます

  $(this).parent().siblings("button").toggle(); 
于 2012-06-05T09:07:08.663 に答える