ツールチップとダイアログを次のように設定しました。
$(document).ready(function() {
$( "#dialog" ).dialog({ autoOpen: false });
$( document ).tooltip();
しかし、後でダイアログを開くと、閉じるツールチップが常に表示され、期待どおりに閉じるだけではありません。他の誰かがこの動作を見たことがありますか/なぜそれが起こるのか知っていますか?
ツールチップとダイアログを次のように設定しました。
$(document).ready(function() {
$( "#dialog" ).dialog({ autoOpen: false });
$( document ).tooltip();
しかし、後でダイアログを開くと、閉じるツールチップが常に表示され、期待どおりに閉じるだけではありません。他の誰かがこの動作を見たことがありますか/なぜそれが起こるのか知っていますか?
ダイアログのタイトルバーを閉じるウィジェットを除外するオプションを設定するitems
と、jQueryUI 1.9以降でうまく機能するようです
$( document ).tooltip({
items: '*:not(.ui-dialog-titlebar-close)'
});
解決策を見つけました:
$( "*" ).tooltip();
$('.ui-dialog-titlebar-close').tooltip('disable')
上記の代わりに動作します
ダイアログが開いたときにボタンが自動的にフォーカスされるため、ツールチップが表示されます (これは奇妙な動作です)。これを回避するには、ダイアログ内の任意の要素に属性「tabindex」を追加する必要があります。
例えば:
<table tabindex="1">
ダイアログのドキュメントによると:
ダイアログを開くと、次の条件に一致する最初の項目にフォーカスが自動的に移動します。
- autofocus 属性を持つダイアログ内の最初の要素
- ダイアログのコンテンツ内の最初の :tabbable 要素
- ダイアログのボタンペイン内の最初の :tabbable 要素
- ダイアログの閉じるボタン
- ダイアログ自体
autofocus
したがって、私の解決策は、ダイアログで使用していたフォームの上部にある空の divに追加することでした:
<form action="" method="post" accept-charset="utf-8">
<div class="stealFocus" autofocus></div>
1.11.3 jQuery と 1.10.4 jUI を使用した私にとって良い解決策
$.ui.dialog.prototype._focusTabbable = function(){};
オートフォーカスが無効になり、オートポップアップが表示されなくなります