将qtip2限制在容器内

将qtip2限制在容器内,qtip2,Qtip2,如何将所有qtip保存在一个容器中(我已经尝试过,并且)如果运气不好,我最好的猜测是我没有正确使用它们。 events: { visible: function (event, api) { var $qtipControl = $(event.target); $qtipControl.css({ 'left': contentPosition.left + "px" }); var $qtipTipControl = $qtipCont

如何将所有qtip保存在一个容器中(我已经尝试过,并且)如果运气不好,我最好的猜测是我没有正确使用它们。

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
更新:1我创建了一个示例应用程序,其中包含以下url的更多详细信息

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
更新:2我也创建了JSFIDLE链接

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
有关布局详细信息,请参阅下面的屏幕截图。

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
我在js代码中将两行之间显示的区域称为$container

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
到目前为止,我已经尝试调整视口,调整方法,但没有任何帮助。我希望这是可能的,我将非常感谢任何帮助

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
下面是创建qtip2的javascript代码

 //Now create tooltip for each of this Comment number
        $('#cn_' + num).qtip({
            id: contentElementID,
            content: {
                text: .....
                    var $control = $('<div class="qtip-parent">' +
                                     '    <div class="qtip-comment-contents">......</div>' +
                                     '    <div class="clearfix"></div>' +
                                     '    <div class="qtip-footer"><span class="qtip-commenter">...</span><span class="pull-right"><a href="#' class="nounderline">...</a></span></div>' +
                                     '</div>'
                                     );

                    return $control;
                },
                button: false
            },
            show: 'click',
            hide: {
                fixed: true,
                event: 'unfocus'
            },
            position: {
                my: 'top right',
                at: 'bottom right',
                target: $('#cn_' + num),
                container: $container,
                //viewport: true,
                adjust: { method: 'shift none' }
            },
            style: {
                tip: {
                    corner: true,
                    mimic: 'center',                    
                    width: 12,
                    height: 12,
                    border: true, // Detect border from tooltip style 
                    //offset: 25
                },
                classes: 'qtip-comment'
            },
            events: {
                show: function (event, api) {
                    ...
                },
                hide: function (event, api) {
                   ...
                }
            }
        });
events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
//现在为每个注释编号创建工具提示
$('#cn'+num).qtip({
id:contentElementID,
内容:{
正文:。。。。。
变量$control=$(“”+
'    ......' +
'    ' +
'    ...' +
''
);
返回$control;
},
按钮:false
},
显示:“单击”,
隐藏:{
修正:对,
事件:“未聚焦”
},
职位:{
我的:“右上角”,
在“右下角”,
目标:$('cn+num),
容器:$container,
//视口:对,
调整:{method:'shift none'}
},
风格:{
提示:{
角落:没错,
模仿:“中心”,
宽度:12,
身高:12,
边框:true,//从工具提示样式检测边框
//抵销:25
},
类:“qtip注释”
},
活动:{
显示:函数(事件、api){
...
},
隐藏:函数(事件、api){
...
}
}
});

显示我正在查找的内容的页面示例(FWIW jalopnik示例不使用qtip2)。

我认为qtip API不支持此功能。我最终在可见事件上重新定位了工具提示

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
我已经更新了,下面的链接是做这件事的代码

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
这种方法的问题是,当我重新定位qTip时,会出现明显的跳跃。但由于目前没有任何其他选择,我会解决这个问题

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}
理想的方法是允许回调方法thru,目前它只支持x和y的静态值,如果在这里允许一个方法,它将使事情变得更加平滑

events: {
    visible: function (event, api) {
        var $qtipControl = $(event.target);
        $qtipControl.css({ 'left': contentPosition.left + "px" });
        var $qtipTipControl = $qtipControl.find(".qtip-tip");
        var $target = api.get("position.target");
        $qtipTipControl.css({ "right": 'auto' });
        //I am using jquery.ui position 
        $qtipTipControl.position({
            my: "center top",
            at: "center bottom",
            of: $target
        });
    }
}