5

Jquery ツールを使用してオーバーレイとして表示している編集フォームがあります。

私のオブジェクト リスト ビュー ページでは、各オブジェクトには<a href="#" class="edit_button">Edit</a>. これらはすべて、次のように同じオーバーレイ フォームに添付されています。

        $(".edit_button[rel]").overlay({ top: '5px',
            fixed: false,

            mask: {
                color: '#ebecff',
                loadSpeed: 200,
                opacity: 0.9
            }
        });

編集フォーム オーバーレイには、キャンセル ボタンが含まれています。

<a href="#" class="cancel">Cancel</a>

このキャンセル ボタンでオーバーレイを閉じるにはどうすればよいですか? オーバーレイ API オブジェクトにアクセスできる唯一の方法は、それを作成したセレクターを使用することです。この場合$('.edit').each()、オーバーレイをトリガーしたセレクターがわからないためです。

私が本当にやりたいことは次のようなものです:

$('.cancel').click(function(e){
    var target = e.originalTarget || e.srcElement;
    $(target).parent().parent().getOverlay().close();
});

しかし、これは機能しません。

何もせずにオーバーレイを閉じる方法はありますか:

$(".edit_button[rel]").each(function() {
    $(this).overlay().close();
});

?

4

3 に答える 3

2

CSS クラス名「close」を割り当てるだけで、オーバーレイ内に終了要素を簡単に追加できます。これらの要素は、オーバーレイ内で好きなようにスタイルを設定して配置できます。

close 構成変数に値を指定した場合、close 要素は自動生成されないため、close 要素を自分で定義する必要があります。

したがって、置くとうまく<a href="#" class="cancel close">Cancel</a>いくはずです。

于 2010-08-13T13:28:02.177 に答える
1

JavaScriptを使用してモーダルを閉じるには(閉じるボタンをクリックせずに自動的に):

$('#ID OF YOUR MODAL a.close').trigger("click");

または、(私のように)iframeを使用している場合は、親を配置します。の前に$

于 2011-05-12T08:33:33.257 に答える
1

Kras が提供したものを拡張します。一度に 1 つのオーバーレイしか開いていない場合 (論理的にはそうするでしょう)、おそらく次のより一般的なアプローチを使用できます。

  $('a.close').trigger('click');

これが役立つことを願っています!

于 2012-05-08T14:09:41.757 に答える