2011-12-19 3 views
0

解決しようとしているJQueryダイアログウィジェットに2つの問題があります。Taming JQueryダイアログウィジェット

1)ダイアログがモーダルである場合、いくつかのコンピュータ画面(解像度が異なる&が異なる場合があります)では、スクロールバーがドキュメントに表示されます。明らかに、ダイアログボックスの直下にオーバーレイがあり、それがスクロールバーが表示される原因になっていると仮定しています。私はすべての決議でそれを避けることができるか知っていますか?すべての決議でii)任意のズームで

2)特定のダイアログでは、[Enter]ボタンをデフォルトの動作にします。これまでに試したコードは以下の通りですが、動作させることはできません。明らかにするために、私はすでに解決策を見てきましたhere。そして、部門は確かにオープンに集中しています。しかし、[Enter]を押すと、これらのコンソールエラーがChromeで引き続き発生します。

 

    FOCUS set 
    ... 

    event.layerX and event.layerY are broken and deprecated in WebKit. They will be removed from the engine in the near future. 

これは私がこれまで試したコードです:ここでは

 

    var opts = {  
     modal: true, 
     open: function() { 
     $(this).focus(); 
     }, 
     focus: function(event, ui) { 
     console.log('FOCUS set'); 

     $(this) 
      .keyup(function(e) { 
      var code = (e.keyCode ? e.keyCode : e.which); 
      if (code == 10 || code == 13) alert('Enter key was pressed.'); 
      e.preventDefault(); 
      console.log('key pressed.'); 
      }); 
     }, 
     ... 
    } 

    $('#mydiv').dialog(opts); 

答えて

1

は入力使用して閉鎖するためのソリューションです:

http://jsfiddle.net/J9KvV/

はJavaScript

$(document).ready(function() { 
    $('#dialog').dialog(); 
    $(document).keydown(function (event) { 
     var dialog = $('#dialog'); 
     if (dialog.dialog('isOpen')) { 
      if (event.keyCode === 13) { 
       dialog.dialog('close'); 
      } 
     } 
    }); 
}); 

HTML

<div id="dialog" title="Header"> 
My Window 
</div> 
+0

はい、そうでした。私はkeydownイベントハンドラをドキュメント全体に配置しなければならないことに気づいていませんでした。乾杯。 – Nutritioustim

+0

答えにコードを追加できますか? –

関連する問題