为什么 qtip 工具提示会出现在其他不共享相同 id 的按钮上?
Why does the qtip tooltip appear on other buttons that do not share the same id?
所以,我想显示特定按钮的工具提示,而不是其他按钮。
这是我的代码示例,我想在悬停 TAB 按钮时显示带有单词 "TAB" 的工具提示。但是,如果我将鼠标悬停在 FOO 和 BAR 等其他按钮上,它也会显示 TAB。我不确定是什么原因造成的?是不是因为他们共享相同的 class 即使我为 TAB 输入了特定的 ID?
js 函数:
$('#TabBtn').mouseover(function () {
BrowserSide.Objects.ToolTip("#TabBtn", "Tab");
}).mouseout(function () {
$("#TabBtn").qtip('destroy', true);
});
工具提示在哪里:
ToolTip:function(elementId,toolTipContent){
$(elementId).parent().mouseover(function (event) {
$(this).qtip({
overwrite: false,
content: toolTipContent,
once: false,
show: {
event: event.type,
delay: 500,
ready: true,
},
position: {
my: 'top center',
at: 'top center',
target: 'mouse',
adjust: {
x: 0,
y: -35,
mouse: true // Can be omitted (e.g. default behaviour)
}
},
style: {
classes: "qtip-tooltip-for-ellipse"
}
}, event);
});
}
Html代码:
<button id="TabBtn" class='newUI-toolbar-button-with-icon' style="margin:10px 8px 5px 8px; width:40px !important; height:30px !important"><span id="toolbar-TAB" class="newUI-toolbar-button-label" style="position: relative; top: -2px">Tab</span></button>
<button class='newUI-toolbar-button-with-icon' style="margin:10px 8px 5px 8px; width:40px !important; height:30px !important"><span id="toolbar-FOO" class="newUI-toolbar-button-label" style="position: relative; top: -2px; left: -4px">Foo</span></button>
<button class='newUI-toolbar-button-with-icon' style="margin:10px 8px 5px 8px; width:40px !important; height:30px !important"><span id="toolbar-BAR" class="newUI-toolbar-button-label" style="font-size: 8px !important;position: relative; top: -3px; left: -4px">Bar</span></button>
每次将鼠标悬停在按钮上时,您都会向按钮的父级添加一个新的 .mouseover 处理程序。这有什么原因吗?
如果你这样做就足够了:
$('#TabBtn').mouseover(function (event) {
BrowserSide.Objects.ToolTip("#TabBtn", "Tab", event);
})
function(elementId,toolTipContent, event){
$(this).qtip({
overwrite: false,
content: toolTipContent,
once: false,
show: {
event: event.type,
delay: 500,
ready: true,
},
position: {
my: 'top center',
at: 'top center',
target: 'mouse',
adjust: {
x: 0,
y: -35,
mouse: true // Can be omitted (e.g. default behaviour)
}
},
style: {
classes: "qtip-tooltip-for-ellipse"
}
}, event);
}
默认 qTip
让我们回顾一下默认的 qtip 功能。
$('#btn').qtip({
content: "Mouseover in a qtip"
});
这会创建一个 qtip,每次用户将鼠标悬停在按钮上时都会出现该提示。它无需指定鼠标悬停处理程序就可以做到这一点。 (demo)
qTip 的目标
qtip 会出现在 .qtip()
左侧的任何选择上。所以
// when parent of button is moused over
$(elementId).parent().mouseover(function (event) {
// add a qtip to $(this)
$(this).qtip({
在该函数中,this
是 window 对象。因此,您正在向全局 window 对象添加一个 qtip,但仅当您将鼠标悬停在按钮的父级上时才创建和销毁它。不用说,没有充分的理由这样做。
标准 qTip 用法
除非您有一些用于手动显示和隐藏 qtips 的极端情况,否则不要这样做。而是利用 qTip 的内置事件处理并使用选项或回调对其进行自定义。
我会推荐:
所以,从你的代码来看,我想你想要这样的东西:
var ToolTip = function (element, toolTipContent) { // Adds one qtip to one element.
$(element).qtip({
content: toolTipContent,
show: {
event: "mouseenter",
delay: 500,
//ready: true, //don't do this
},
position: {
target: 'mouse', //qtip will follow the mouse
my: 'top center',
at: 'top center',
adjust: {
x: 0,
y: 15,
}
},
style: {
classes: "qtip-tooltip-for-ellipse"
}
});
};
ToolTip("#TabBtn", "Tab"); // This should be run only once at page load
所以,我想显示特定按钮的工具提示,而不是其他按钮。 这是我的代码示例,我想在悬停 TAB 按钮时显示带有单词 "TAB" 的工具提示。但是,如果我将鼠标悬停在 FOO 和 BAR 等其他按钮上,它也会显示 TAB。我不确定是什么原因造成的?是不是因为他们共享相同的 class 即使我为 TAB 输入了特定的 ID?
js 函数:
$('#TabBtn').mouseover(function () {
BrowserSide.Objects.ToolTip("#TabBtn", "Tab");
}).mouseout(function () {
$("#TabBtn").qtip('destroy', true);
});
工具提示在哪里:
ToolTip:function(elementId,toolTipContent){
$(elementId).parent().mouseover(function (event) {
$(this).qtip({
overwrite: false,
content: toolTipContent,
once: false,
show: {
event: event.type,
delay: 500,
ready: true,
},
position: {
my: 'top center',
at: 'top center',
target: 'mouse',
adjust: {
x: 0,
y: -35,
mouse: true // Can be omitted (e.g. default behaviour)
}
},
style: {
classes: "qtip-tooltip-for-ellipse"
}
}, event);
});
}
Html代码:
<button id="TabBtn" class='newUI-toolbar-button-with-icon' style="margin:10px 8px 5px 8px; width:40px !important; height:30px !important"><span id="toolbar-TAB" class="newUI-toolbar-button-label" style="position: relative; top: -2px">Tab</span></button>
<button class='newUI-toolbar-button-with-icon' style="margin:10px 8px 5px 8px; width:40px !important; height:30px !important"><span id="toolbar-FOO" class="newUI-toolbar-button-label" style="position: relative; top: -2px; left: -4px">Foo</span></button>
<button class='newUI-toolbar-button-with-icon' style="margin:10px 8px 5px 8px; width:40px !important; height:30px !important"><span id="toolbar-BAR" class="newUI-toolbar-button-label" style="font-size: 8px !important;position: relative; top: -3px; left: -4px">Bar</span></button>
每次将鼠标悬停在按钮上时,您都会向按钮的父级添加一个新的 .mouseover 处理程序。这有什么原因吗?
如果你这样做就足够了:
$('#TabBtn').mouseover(function (event) {
BrowserSide.Objects.ToolTip("#TabBtn", "Tab", event);
})
function(elementId,toolTipContent, event){
$(this).qtip({
overwrite: false,
content: toolTipContent,
once: false,
show: {
event: event.type,
delay: 500,
ready: true,
},
position: {
my: 'top center',
at: 'top center',
target: 'mouse',
adjust: {
x: 0,
y: -35,
mouse: true // Can be omitted (e.g. default behaviour)
}
},
style: {
classes: "qtip-tooltip-for-ellipse"
}
}, event);
}
默认 qTip
让我们回顾一下默认的 qtip 功能。
$('#btn').qtip({
content: "Mouseover in a qtip"
});
这会创建一个 qtip,每次用户将鼠标悬停在按钮上时都会出现该提示。它无需指定鼠标悬停处理程序就可以做到这一点。 (demo)
qTip 的目标
qtip 会出现在 .qtip()
左侧的任何选择上。所以
// when parent of button is moused over
$(elementId).parent().mouseover(function (event) {
// add a qtip to $(this)
$(this).qtip({
在该函数中,this
是 window 对象。因此,您正在向全局 window 对象添加一个 qtip,但仅当您将鼠标悬停在按钮的父级上时才创建和销毁它。不用说,没有充分的理由这样做。
标准 qTip 用法
除非您有一些用于手动显示和隐藏 qtips 的极端情况,否则不要这样做。而是利用 qTip 的内置事件处理并使用选项或回调对其进行自定义。
我会推荐:
所以,从你的代码来看,我想你想要这样的东西:
var ToolTip = function (element, toolTipContent) { // Adds one qtip to one element.
$(element).qtip({
content: toolTipContent,
show: {
event: "mouseenter",
delay: 500,
//ready: true, //don't do this
},
position: {
target: 'mouse', //qtip will follow the mouse
my: 'top center',
at: 'top center',
adjust: {
x: 0,
y: 15,
}
},
style: {
classes: "qtip-tooltip-for-ellipse"
}
});
};
ToolTip("#TabBtn", "Tab"); // This should be run only once at page load