プロジェクトで JqModal を使用しています。素敵な JS モーダルです。ただし、Close On Escape キーを押して JqModal に接続するには、1 つの助けが必要です。JqModalで外部URLから永遠のコンテンツを読み込んでいます。
IFrame を使用しない単純な Modal の場合、CloseOnEscape キー プレス機能を実装するのは非常に簡単です。
プロジェクトで JqModal を使用しています。素敵な JS モーダルです。ただし、Close On Escape キーを押して JqModal に接続するには、1 つの助けが必要です。JqModalで外部URLから永遠のコンテンツを読み込んでいます。
IFrame を使用しない単純な Modal の場合、CloseOnEscape キー プレス機能を実装するのは非常に簡単です。
jqModal.js ファイルを更新して動作させました
手順:
オプション「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
};
次のコードを 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();
}
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をアタッチしたウィンドウまたはコンテナです。
jqModal の最新バージョン (2014 年 2 月 21 日現在) に対する user1233802 の回答を更新しました。