3

プロジェクトで JqModal を使用しています。素敵な JS モーダルです。ただし、Close On Escape キーを押して JqModal に接続するには、1 つの助けが必要です。JqModalで外部URLから永遠のコンテンツを読み込んでいます。

IFrame を使用しない単純な Modal の場合、CloseOnEscape キー プレス機能を実装するのは非常に簡単です。

4

3 に答える 3

5

jqModal.js ファイルを更新して動作させました

手順:

  1. オプション「closeOnEsc: true」を jqModal に追加します。したがって、オプションは次のようになります。

        var p = {
        overlay: 50,
        overlayClass: 'jqmOverlay',
        closeClass: 'jqmClose',
        trigger: '.jqModal',
        ajax: F,
        ajaxText: '',
        target: F,
        modal: F,
        toTop: F,
        onShow: F,
        onHide: F,
        onLoad: F,
        closeOnEsc: true
    };
    
  2. 次のコードを jqModal open 関数に追加します。

        var modal = $(h.w);
    
        modal.unbind("keydown");
    
        if (c.closeOnEsc) {
            modal.attr("tabindex", 0);
            modal.bind("keydown", function (event) {
                if (event.keyCode == 27) {
                    event.preventDefault();                        
                    modal.jqmHide();
                }
            });
            modal.focus();
        }
    
于 2012-03-30T09:25:59.760 に答える
2

http://forum.jquery.com/topic/jquery-jqmodal-and-the-esc-keyから

document.onkeydown = function(e){
    if (e == null) { // ie
       keycode = event.keyCode;
    } else { // mozilla
       keycode = e.which;
    }
    if(keycode == 27){ // escape, close box
       $('.jqmWindow').jqmHide();
     }
};

ここで、「。jqmQWindow」は、jqModalをアタッチしたウィンドウまたはコンテナです。

于 2012-03-29T04:33:54.577 に答える
0

jqModal の最新バージョン (2014 年 2 月 21 日現在) に対する user1233802 の回答を更新しました。

http://pastebin.com/7RQG1Jj3

于 2014-02-21T22:26:27.920 に答える