我正在使用非常方便的qTip2 library。
我有一个表在制作各种ajax请求时经常被替换。当光标悬停在该列中的<td>
上时,我希望qtip显示在表格中特定列的顶部。为实现此目的,我使用$('body').on(...)
方法将<th>
作为选择器,然后通过类分配将“show.target”的选择器设置为相关的<td>
。 / p>
我已经让它与2点分开了:
<th>
至少一次<td>
上时显示qtip,在我悬停并离开<th>
以下是代码:
// Create the tooltips only when document ready
$(document).ready(function () {
var timeOut = setTimeout(function () {
var tableHtml = '<table><tr><th>Col 1</th><th class="col-2-header">Col 2</th></tr><tr><td>Row Label 1</td><td class="col-2">Val 1</td></tr><tr><td>Row Label 2</td><td class="col-2">Val 2</td></tr><tr><td>Row Label 3</td><td class="col-2">Val 3</td></tr></table>';
$('body').append(tableHtml);
}, 100);
$("body").on("mouseover", '.col-2-header', function (e) {
$(this).qtip({
overwrite: false,
position: {
my: 'bottom center',
at: 'top center',
viewport: $(window)
},
content: 'Some test content...',
show: {
event: e.type,
ready: true,
target: $('td.col-2')
}
}, e);
});
});
http://jsfiddle.net/fDavN/6106/
欢迎任何指示。
谢谢, 利
答案 0 :(得分:1)
我对你的qTip定义做了一些修改。它不会运行.on作为标题,而是运行任何带有.col-2类的东西(也将该类放到标题中)并为标题列设置位置目标。
// Create the tooltips only when document ready
$(document).ready(function () {
var timeOut = setTimeout(function () {
var tableHtml = '<table><tr><th>Col 1</th><th class="col-2-header col-2">Col 2</th></tr><tr><td>Row Label 1</td><td class="col-2">Val 1</td></tr><tr><td>Row Label 2</td><td class="col-2">Val 2</td></tr><tr><td>Row Label 3</td><td class="col-2">Val 3</td></tr></table>';
$('body').append(tableHtml);
}, 100);
$("body").on("mouseover", '.col-2', function (e) {
$(this).qtip({
overwrite: false,
position: {
my: 'bottom center',
at: 'top center',
viewport: $(window),
target: $(".col-2-header")
},
content: 'Some test content...',
show: {
event: e.type,
ready: true
}
}, e);
});
});
编辑:这似乎是一个部分修复,因为当在单元格之间进行鼠标悬停时,qTip会重新创建。可以通过玩hide:event来修复。