2

それぞれにフォーム要素を含むアプリケーションにタブを使用しています。ユーザーが別のタブに移動し、フィールドが変更されると、非表示の変数「IsDirty」が設定されます。

タブにbeforeActivateイベントを実装するとき...値が変更されたかどうかをチェックし、非表示の変数を「IsDirty」として設定します。これは、beforeActivateで行います。これは、[古い]タブと[新しい]タブにアクセスできるためです。例:

    beforeActivate: function (event, ui) {
        ...
        $panel_Old.find("input#hdIsDirty").val('0');
        $tabs.tabs('select', $tab_New.index());
        $panel_Old.find("input#hdIsDirty").val('1');
        ...
     },

次に、selectイベントも実装します。例:

     select: function (event, ui) {
         // other code here
     }

私の質問は...beforeActivateイベントで...電話をかけるとき

    $tabs.tabs('select', $tab_New.index());

selectイベントがカスタム引数として持つであろういくつかのパラメータを渡すことはできますか?例えば...前のタブ...

4

1 に答える 1

1

答えはノーです。ウィジェット自体を変更しない限り、カスタム引数をイベントに渡すことはできません。

必要に応じて、イベントのウィジェットに属性を設定し、後でそれらを取得することができます。

beforeActivate: function (event, ui) {
    ...

    $(this).attr('data-oldtab', $tab_Old.index()); // or whatever information you want

    $panel_Old.find("input#hdIsDirty").val('0');
    $tabs.tabs('select', $tab_New.index());
    $panel_Old.find("input#hdIsDirty").val('1');
    ...
 },

次に、バインドするときselect

 select: function (event, ui) {
     oldtabindex = $(this).data('oldtab');
     // other code here
 }

詳細については、data()こちらをお読みください

于 2012-12-18T19:04:51.790 に答える