4

了解しました。すべてのモーダルの右上に、モーダルを閉じるための画像が既に表示されています。同じことを行うために、さらに別のアンカーを作成するにはどうすればよいですか?デフォルトが「simplemodal-close」である「closeClass」オプションを使用して、そのクラスをアンカーに追加するだけでよいと思いましたが、望ましい効果はありませんでした。それは私がすることになっていることですか?また、すべてのモーダルには「お問い合わせ」リンクがあり、それ自体のモーダルを閉じて、連絡先モーダルを開く必要があります。次のものを開くためにそれが閉じられるまでどのように待つことができますか?

アイデア?

$('a#ask').click(function(){
        $.modal.close(function(){
        });
        $('#modal-contact').modal();
    });
4

4 に答える 4

3

1)simplemodal-closeダイアログコンテンツにある要素に割り当てると、SimpleModalはその要素のクリックイベントに閉じる関数を自動的にバインドします。

2)コンテンツを交換するか、最初に$ .modal.close()でダイアログを閉じるなど、これを行う方法はいくつかあります。次に、新しいものを開きます。

アップデート

$('a#ask').click(function(){
    $('#modal-contact').modal({onShow: function (dialog) {
        // handle the close yourself.
        // Don't use the closeClass on this element
        // call $.modal.close(); when you are done
        // call a function to open a new modal
    });
    return false;
});
于 2010-04-27T14:24:26.170 に答える
2

現在のonCloseイベントはonBeforeCloseのように機能し、$。modal.close()のonAfterCloseは設計されていません。唯一の回避策は待つことです:

$ .modal.close(); window.setTimeout(showSecondModal、500);

于 2010-11-24T19:58:04.863 に答える
1

2番目の質問(既存のモーダルを閉じてから新しいモーダルを開く方法)に答えるには、次の3つのことを行う必要があります。

  1. Persist:trueを最初のモーダルのコールバックオプションに追加します。EricMartinのWebサイトによると、「trueの場合、データはモーダル呼び出し全体で維持され、falseの場合、データは元の状態に戻ります。」
  2. onCloseコールバックを最初のモーダルに追加します。
  3. 関数を実行する前に最初のモーダルを閉じて、2番目のモーダルを開きます。

したがって、$。modal.close()を使用してモーダルを閉じると、onCloseが実行され、アニメーションがトリガーされてモーダルが閉じます。永続化が真であるため、次の関数が保持されます。関数が起動し、2番目のモーダルが開きます。

$("#first_modal").modal({
     containerId: 'modal_id',
     persist: true,
     onClose: function (dialog) {
     dialog.container.fadeOut(100, function () {
        dialog.overlay.fadeOut(200, function(){
            $.modal.close();
            showSecondModal();      
        });
   });

}});

于 2010-09-02T18:33:57.973 に答える
1

SimpleModalの最新バージョン(現在は1.4.4)にアップグレードします。タイムアウトの問題は、 http://www.ericmmartin.com/simplemodal-1-4-3-released/に従って1.4.2で修正されました。

問題を引き起こしていたclose()のオペラ回避策を削除しました

上記のコードは、わずかな変更を加えるだけで、期待どおりに機能するはずです。

$('a#ask').click(function(){
    $.modal.close();
    $('#modal-contact').modal();
});
于 2013-02-05T02:46:40.170 に答える