qTip2 | jQuery“on”方法与不同的目标

时间:2013-05-07 14:32:24

标签: javascript jquery qtip2

我正在使用非常方便的qTip2 library

我有一个表在制作各种ajax请求时经常被替换。当光标悬停在该列中的<td>上时,我希望qtip显示在表格中特定列的顶部。为实现此目的,我使用$('body').on(...)方法将<th>作为选择器,然后通过类分配将“show.target”的选择器设置为相关的<td>。 / p>

我已经让它与2点分开了:

  • 在我将鼠标悬停在<th>至少一次
  • 之前,不会创建qtip
  • 当我将鼠标悬停在<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/

欢迎任何指示。

谢谢, 利

1 个答案:

答案 0 :(得分:1)

我对你的qTip定义做了一些修改。它不会运行.on作为标题,而是运行任何带有.col-2类的东西(也将该类放到标题中)并为标题列设置位置目标。

New jsFiddle

// 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来修复。