初始化 qtip 并立即显示在鼠标位置

Initialize qtip and immediately show on mouse position

我正在尝试在 click 事件上初始化一个 qTip 并同时在鼠标位置显示它(通过相同的单击)。到目前为止,我需要点击 2 次才能显示它,但我只想点击 1 次即可:http://jsfiddle.net/vpysbc5y/4/

有什么好主意吗?谢谢

<div id="block" style="height: 200px; width: 200px; background: black;"></div>

<script>
    $(document).ready(function () {
        $('#block').on('click', function() {
            $(this).qtip({
                content: {
                    text: 'Hello, world!'
                },
                show: {
                    event: 'click',
                },
                hide: {
                    event: 'unfocus',
                    fixed: true
                },
                position: {
                    at: 'top center',
                    my: 'bottom center',
                    target: 'mouse',
                    adjust: {
                        mouse: false
                    }
                },
            });
        });
    });
</script>

问题是 target: 'mouse'(可能)试图推断当前的鼠标位置。但是,在点击事件之外,这是不可能的。由于您的 qtip 将在准备就绪时显示,而不是在单击时显示,因此它无法自行推断鼠标位置,因此您需要转发它。

您的代码应为:

$(document).ready(function () {
    $('#block').on('click', function(e) {
        $(this).qtip({
                content: {
                    text: 'Hello, world!'
                },
                show: {                    
                    ready : true
                },
                hide: {
                    event: 'unfocus',
                    fixed: true
                },
                position: {
                    at: 'top center',
                    my: 'bottom center',
                    target: [ e.clientX, e.clientY ],
                    adjust: {
                        mouse: false
                    }
                },
         });
     });
});

示例fiddle