0

だから私は内部にいくつかのボタンを持つjQuery UIダイアログを持っています(完全な例はこちら=> http://jsfiddle.net/VLr5G/3/ ):

<div id="test">
    <button>Btn 1</button>
    <button>Btn 2</button>
    <button>Btn 3</button>
</div>

私がやりたいのは、「閉じる」ボタンにフォーカスを強制することです-ダイアログが開いたときに次のコードを適用しようとしました:

open: function() {
    $(this).parents('.ui-dialog-buttonpane button:eq(0)').focus();
}

残念ながら、フォーカスは常にダイアログ内の最初のボタンに置​​かれ続けます。これはバグですか、それとも何か不足していますか?

よろしくお願いいたします。

アップデート

さて、スタンリーからの答えは私の最初の例でうまくいきます...しかし、jQuery UIのバージョンを変更してみてください=> http://jsfiddle.net/VLr5G/10/

これまでのところ、jQuery UI 1.10.0 までは機能していました。

4

1 に答える 1

0

閉じるボタンが正しく取得されていません。代わりにこれを行う必要があります。

$(document).ready(function() {
    $('#test').dialog({
        buttons: {
            'Close': function() {$(this).dialog('close');}
        },
        open: function() {
            $(this).parent().find('.ui-dialog-buttonpane button:eq(0)').focus();
        }
    });
});

jsfiddle の作業: http://jsfiddle.net/GG7EP/2/

UPDATE jQuery 1.10.0以降で動作させるには、focusイベントでボタンのフォーカス関数を呼び出します

$(document).ready(function() {
    $('#test').dialog({
        buttons: {
            'Close': function() {$(this).dialog('close');}
        },
        focus: function() {
            $(this).parent().find('.ui-dialog-buttonpane button:eq(0)').focus();
        }
    });
});

JsFiddle: http://jsfiddle.net/V3P4t/

于 2013-06-29T16:04:46.013 に答える