2013-06-29 46 views
0

所以我有一些按钮里面一个jQuery UI的对话框(这里完整的例子=>http://jsfiddle.net/VLr5G/3/):jQuery UI的 - 里面对话框按钮不断获得焦点

<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(); 
} 

不幸的是,焦点始终保持让该对话框中的第一个按钮。这是一个错误,还是我错过了什么?

非常感谢您的帮助!

UPDATE

好了,所以从斯坦利的答案正常工作与我的第一个例子。但尝试更改版本jQuery用户界面的=>http://jsfiddle.net/VLr5G/10/

从我能到目前为止发现,它的工作,直到jQuery UI 1.10.0。

回答

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/

+0

这很快!非常感谢:-)确实有效,但在另一种情况下我仍然遇到另一个问题,与此类似......我会尽快回复您! –

+0

问题已更新 - 这个问题似乎与最近版本的jQuery UI(从1.10.1及更高版本) –

+0

@JulienM发生。在jQuery 1.10+焦点会自动移动到对话框内容的第一个:tabbable元素。我添加了一个更新,使其在jQuery 1.10 + – Stanley