2012-01-27 56 views
1

とESCのキーの押下でカスタマイズされたボックスを閉じます私は、ダイアログボックスの次のHTMLコード持ってjQueryの

$("#clickfeed").live("click", function() { 
     $("#modal-dialog").removeClass("no-display"); 
    }); 

を私が書いた:

$("#modal-dialog").live("keyup", function(e) { 
     if(e.keyCode === 27 && !($(this).hasClass("no-display"))) 
     { 
      $("#feedback-modal-dialog input").each(function() { 
       $(this).attr("value",""); 
      }); 
      $("#feedback-modal-dialog textarea").each(function() { 
       $(this).val(""); 
      }); 
      $("#modal-dialog").addClass("no-display"); //or .hide() 
     }  
    }); 

ESCキーは入力がフォーカスされていない場合にのみ機能します。

ESCを押すとmodal-dialogボックスを閉じたいと思っています。

私のJSコードで間違いはありますか? $("#modal-dialog" doesntのがフォーカスを持っている場合$("#modal-dialog")への結合

$("html").live("keyup", function(e) { 

if(e.keyCode === 27 && !($('#modal-dialog').hasClass("no-display"))) 

    escape_check(); 

} 

} 

function escape_check() { 

$("#modal-dialog").removeClass("no-display"); 

$("#feedback-modal-dialog input").each(function() { 
    $('#modal-dialog').attr("value",""); 
}); 
$("#feedback-modal-dialog textarea").each(function() { 
    $('#modal-dialog').val(""); 
}); 
$("#modal-dialog").addClass("no-display"); //or .hide() 


} 
+0

使用しているjQueryのバージョンは? – Nix

+0

私はバージョン1.7.1を使用しています –

+0

好奇心が強いですが、キーコードを比較するときに '==='や '=='を使うのに違いがありますか? – Niklas

答えて

1

ありがとうございます。

ドキュメント全体にキーアップをバインドする方が良いので、ページのどこにフォーカスがあってもキー入力イベントが発生します。

+0

'$(" html ")'私はそれを逃しました:))。私の悪い。ありがとうございます –

2

押されているESCボタンをキャプチャしません。

はこれについてどのように

+1

ヘッドアップありがとう!あなたが焦点要件を知っていなければ、これをデバッグすることは本当に困難です。 – Bay

1

.live()は、jQuery 1.7以降では非推奨です。代わりに.on()を使用してみてください。

これはまったく同じです。 documentationを参照してください。

+0

私は 'live'の代わりに' on'を使います。アドバイスのためのThx –

関連する問題