javascript - YUI 工具提示未显示在面板顶部

标签 javascript events yui tooltip panel

目前,在显示先前创建的 YUI 面板后,尝试让 YUI 工具提示显示在 YUI 面板顶部时遇到问题。问题是面板无法注册到覆盖管理器,因为这需要更改和测试大量代码,从而延长硬性截止日期。使其发挥作用的唯一方法是在显示面板后设置工具提示。问题是需要进行大量的代码更改才能附加另一个函数调用。我的问题是我希望我可以使用事件处理来使用 "showEvent" 但我似乎无法让它工作(我为字数表示歉意):

var panel_obj = new YAHOO.widget.Panel('someID', {
    width: "700px",
    height: "500px",
    close: true,
    draggable: false,
    modal: true,
    constraintoviewport: true,
    visible: false,
    fixedcenter: true 
});
panel_obj.render();

var tooltip_name = 'newTooltip1';
var element_id = 'htmlElementIDToBecomeTooltip';

function createTooltip() {
    window[tooltip_name] = new YAHOO.widget.Tooltip(tooltip_name, {
        context: element_id,
        xyoffset: [15, -15],
        zIndex: 999
    });
}

function successfulScenario() {
    panel_obj.show();
    createTooltip();
}

function failedScenario1() {
    YAHOO.util.Event.addListener(
        'someID',
        "showEvent",
        createTooltip
    );
}

function failedScenario2() {
    createTooltip();
    panel_obj.show();
}

我似乎让它工作的唯一方法是运行诸如 successfulScenario() 之类的东西。我有 jQuery 背景,所以我仍在学习 YUI。我希望能够扩展(子类)YAHOO.widget.Panel 的 show() 函数来调用 createTooltip 但我不是一个大师,或者我可能需要更改一个非常大的代码库才能做到这一点。

最佳答案

尝试使用工具提示配置的“容器”属性(因此容器将是面板的元素):

function createTooltip() {
    window[tooltip_name] = new YAHOO.widget.Tooltip(tooltip_name, {
        container: panel_obj.element,
        context: element_id,
        xyoffset: [15, -15]
    });
}

这是快速的解决方案,使用显示事件和/或扩展类会很好,但必须运行,如果您仍然需要帮助,我会回来检查(另请检查我用您的代码 http://jsfiddle.net/3GWaM/2/ 制作的示例) .

关于javascript - YUI 工具提示未显示在面板顶部,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/5156770/

相关文章:

javascript - 迭代并获取字符串中每个由\n 分隔符分隔的值的元素,而不使用 split

javascript - 关闭带有大量标记的雅虎 map 时避免挂起

javascript - YUI Loader Utility 可靠吗?

javascript - D3 中的国际象棋走法

javascript - 从 MVC 中的自定义 View 模型在 Razor 页面上使用 JavaScript 创建 JSON 对象数组?

javascript - 当脚本插入 DOM 时,jQuery .on() 未绑定(bind)

c# - 如何让最远的 child 接收共享事件?

javascript - 为什么这个window对象没有eval函数?

javascript - 页面无需登录验证即可登录

c# - 如何安全地摆脱事件处理程序?