如何防止在打开对话框时显示工具提示

时间:2014-11-17 12:54:11

标签: javascript jquery jquery-ui

我必须遵循以下方案:

在我的网站上有几个对话框(一些是静态的,一些是使用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触发。

Demo

所以现在我的问题: 如何在打开对话框时阻止工具提示显示?

我可以在工具提示的初始化中设置一个选项,这样在关闭按钮上设置焦点时不会触发工具提示?这将是最好的解决方案,因为我只有一个地方可以调用工具提示,而且我必须更改某些内容。 事实上,我不希望改变焦点但不显示工具提示。

我知道可以使用:tabbaleautofocus属性来完成,但还有其他方法吗?我不想编辑项目中的所有对话框来添加一个新的自动对焦元素(然后再打开后按Enter或转出无法关闭对话框)我想要保持工具提示在对话框中的功能。

注意:并非每个对话框都在点击事件中打开。

3 个答案:

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

 });