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

标签 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 或 escape 关闭对话框)我想在对话框中保留工具提示的功能。

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

最佳答案

我找到了一个简单的解决方案来解决我的问题:

$('body').tooltip({ 
    items: ":not(.ui-dialog-titlebar-close)" 
});

这将从工具提示功能的对话框中排除关闭按钮,而不影响自动对焦。

现在关闭按钮没有tooltip,其他不受影响。

这可以轻松扩展并使用 ajax 生成的内容。

关于javascript - 如何防止在打开对话框时显示工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/26973188/

相关文章:

jquery - 使用 jQuery ajax 中的参数调用 WebMethod 失败

jquery - 数据表回调

javascript - 使用 JavaScript 模仿占位符行为

当用户完成使用 slider 时,jQuery slider 运行代码?

javascript - 禁用 "Get to Google faster. Add Google to your start screen."的脚本

javascript - 未捕获的类型错误 : Cannot set property 'getName' of undefined(anonymous function)

javascript - 使用 JQuery 解析 JSON

javascript - 有没有一种方法可以在一个函数定义中提供两组剩余参数?

jQuery:对话框问题 - 初始化后更改按钮

javascript - Jquery UI 按钮问题