0

このプロジェクトでは、 simpleModalと jquery-ui タブを使用しました。FilterModal() を呼び出してモーダルを表示するフォームに「Filter」という名前のリンクがあります。

function FilterModal() {
   $('#divFilterModal').modal();
} 

Div #divFilterModal は _Filter.cshtml 内にあります。

<div">@Html.Partial(MVC.Sample._Filter)</div>

_Filter.cshtml内には、2 つのリンク ボタンがあります。1 つは、選択した選択肢からフィルターを実行し、結果をポストバックしてモーダルを閉じる「実行」です。もう 1 つは、ポップアップを閉じるだけの「キャンセル」です。また、このコントロールでjquery ui Tabsを使用しました。

 $(document).ready(function () {
    $('#FilterModalTabs').tabs();
 });

そのため、[フィルター] リンクをクリックすると、モーダルがポップアップし、タブが正常に機能します。「実行」ボタンをクリックすれば、すべて問題ありません。しかし、「キャンセル」ボタンをクリックすると、モーダルを再度開くと、タブが壊れています。別のタブをクリックするたびに、前のタブが選択解除/フォーカス解除されず、さらに多くのタブが開かれます。

モーダルが閉じたときにjquery uiスクリプトが削除されたかどうかを確認しますが、まだそこにあります。これについて何か考えはありますか?前もって感謝します

4

1 に答える 1

0

私はすでにこれを解決しています。秘訣は、onShow 内でタブを初期化する必要があることです。これがコードです。

$('#divFilterModal').modal({
    onShow: function (dialog) {
        $('#FilterModalTabs').tabs();
    },
    onClose: function (diag) {
        $.modal.close();
    }
});

ありがとう

于 2012-07-28T14:24:01.603 に答える