我有一个页面,我在其中动态创建需要工具提示的元素。
我尝试了一些不同的方法,并在网上寻找一些无济于事的答案。
截至目前,我有这个:
var $links = $('a.link');
var len = $links.length;
for(var i = 0; i < len; i++){
var $ele = $($links[i]);
$ele.qtip({
id: 'editLink',
overwrite: false,
content: {
text: $linkEditor,
title: {
text: 'Edit Link',
button: true
}
},
position: {
my: 'top center',
at: 'bottom center',
viewport: $(window)
},
show: {
event: 'mouseover',
solo: true
},
hide: false,
style: {classes: 'ui-tooltip-shadow ui-tooltip-red'}
});
}
我正在寻找的是使所有这些元素使用完全相同的工具提示的某种方式。我希望他们都使用完全相同的内容(在这种情况下是单个表单)并以完全相同的方式引用工具提示(通过id为'ui-tooltip-editLink'的工具提示元素)。
凭借我所拥有的,它目前正确地创建了第一个工具提示,但是如果我添加一个新元素并重新分配工具提示,它会为新元素创建一个具有不同id的全新工具提示。
有谁知道实现多元素的一些方法,同样的工具提示方法?
答案 0 :(得分:1)
如果有人发现方便的话,我已经想出如何让许多工具提示图像共享一个工具提示div
$(".tooltipBearing").qtip({
content: {
text: $("#tooltipDiv").html()
}
});
如果你没有把 .html()放在那里,你会看到共享工具提示出现一次,然后当你从另一个图像激活它时,它将不再适用于第一个...
tooltipBearing 是在页面中的某些图片上设置的类。
tooltipDiv 是包含工具提示内容的div的ID。
答案 1 :(得分:0)
为了在动态创建的元素中使用qtip
,您需要在元素初始化期间包含qtip
。
e.g。
$('<div style="top:0px; left:0px; position:absolute;">abc123</div>').appendTo("body").qtip({content: "test"});
答案 2 :(得分:0)
可悲的是,我们需要为每个悬停/点击元素克隆Tooltip元素。
Craig在GitHub问题中提到了这一点:https://github.com/Craga89/qTip2/issues/173
答案 3 :(得分:0)
这就是我所做的。我将我的工具提示附加在一个独特的元素上。然后我需要相同工具提示的所有其他元素只会触发独特元素的工具提示显示:
$('#unique-element').qtip({
content: {text: 'My Tooltip'},
});
$('.other-elements').click(function(){
$('#unique-element').qtip('show');
});
但是,所有工具提示都将显示在固定位置。这在我的案例中不是问题,因为我使用工具提示作为模态。您必须通过cutom event
方法管理工具提示位置。
答案 4 :(得分:0)
基于the answer of user738048,我的工作解决方案是这样的:
startContainer
在我的例子中,包含文本的HTML元素的id取自$('[data-tooltipid]').each(function() {
var ttid = $(this).data('tooltipid');
$(this).qtip({
content: {
text: $('#'+ttid).html(),
},
position: {
my: 'top left',
at: 'bottom left',
target: $(this)
}
}).removeAttr('href').removeAttr('onclick');
});
属性;我的data-tooltipid
和href
属性已被删除,因为它们已被工具提示废弃。