我必须遵循以下方案:
在我的网站上有几个对话框(一些是静态的,一些是使用ajax加载的内容创建的,一些是在页面加载后创建的)。
一个例子:
$(".agreementcount_dialog").dialog({
position: {
my: "center center",
at: "center center"
},
draggable: true,
resizable: true,
modal: false,
width: 250,
height: 300,
close: function () {
$(this).dialog("close");
}
});
包含了jQuery-UI tooltip
:
$('#main').tooltip();
每次打开对话框时,工具提示都会通过对话框关闭按钮上的autofocus
触发。
所以现在我的问题: 如何在打开对话框时阻止工具提示显示?
我可以在工具提示的初始化中设置一个选项,这样在关闭按钮上设置焦点时不会触发工具提示?这将是最好的解决方案,因为我只有一个地方可以调用工具提示,而且我必须更改某些内容。 事实上,我不希望改变焦点但不显示工具提示。
我知道可以使用:tabbale
或autofocus
属性来完成,但还有其他方法吗?我不想编辑项目中的所有对话框来添加一个新的自动对焦元素(然后再打开后按Enter或转出无法关闭对话框)我想要保持工具提示在对话框中的功能。
注意:并非每个对话框都在点击事件中打开。
答案 0 :(得分:1)
试试这个:可能会有所帮助
$('.open').on('click', function(){
$('.dialog').dialog('open');
$(this).focus();
});
答案 1 :(得分:1)
我找到了一个简单的解决方案来解决我的问题:
$('body').tooltip({
items: ":not(.ui-dialog-titlebar-close)"
});
这将从工具提示功能中排除对话框中的关闭按钮,而不会影响自动对焦。
现在关闭按钮没有工具提示,但其余部分不受影响。
这可以轻松扩展,并使用ajax生成的内容。
答案 2 :(得分:0)
打开对话框后,您可能需要初始化工具提示,它可以解决问题,但我不确定这是最好的方法。
无论如何,这是演示。 http://jsfiddle.net/utj47ty9/1/
$(document).ready(function(){
$('.dialog').dialog({autoOpen: false});
$('.open').on('click', function(){
$('.dialog').dialog('open');
$('body').tooltip();
});
});