0

ダイアログを開くselectの.on("click"...イベントがあります。

問題は、ダイアログを開くと、ユーザーがクリックしたばかりの選択が閉じられることです。

この選択リストの終了を停止するにはどうすればよいですか?FF16とjqueryui1.9でテストしています

問題の例とJSfiddleは次のとおりです。http://jsfiddle.net/HqfvP

$(function(){
  $('#theDialog').dialog( {
      autoOpen : false,
      resizable : false,
      stack : false, position: ['right','center']
  });
  $("#theSelect").on("click", function(){
      $(".ui-dialog-content").dialog("close");//closes all open dialogs
      $('#theDialog').dialog("open");
  });
});
4

1 に答える 1

1

選択オプションが閉じる理由は.dialog("open")、ダイアログ上の要素にフォーカスが自動的に設定されるためです。新しく開いたダイアログにフォーカスを設定したくないのは珍しいユースケースであるため、カスタマイズを行う必要があります:http: //jsfiddle.net/HqfvP/3/

リンクされたコードは大変な作業だったように見えますが、実際に思いつくのはそれほど難しくありませんでした。1.次のようにjQueryダイアログを拡張します。

$.widget("ui.my_dialog", $.ui.dialog, { 
});
  1. すべての.dialog参照をに変更します.my_dialog
  2. open関数をjQueryUIソースから新しいオブジェクトにコピーします。
  3. (オプション)名前openopen_nofocus(または他の何か)に変更し、の使用法を更新しますopen
于 2012-11-20T23:37:41.747 に答える