目前,在显示先前创建的 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/