我有一个循环,其中出现许多不同的唯一工具栏(标题)消息。此jsfiddle显示我遇到的问题。如果将鼠标悬停在默认文本框中,则可以正确看到位于其中的title test
:
<tr>
<td class="tips" title='title test'>
test this
</td>
<td>
adf
</td>
</tr>
我有一个循环,在其中模拟了生产代码,尽管它不是唯一的数据,但问题是它完全改变了所有标题,包括悬停时工具提示(标题)的现有标题为
content: 'This is the message!',
我意识到功能
loadQtip()
中的代码不够具体,仅将新添加的标题更改为新添加的行,但是我不确定如何定位新标题。如您所见,目前我仅定位到
class='tips'
http://jsfiddle.net/bthorn/tw6mLcL1/
新小提琴显示OP答案以及与我的数据非常接近的数据
http://jsfiddle.net/bthorn/Lpuf0x7L/1/
最佳答案
一种方法是将克隆的.tips
后代元素直接传递给loadQtips
函数。这样做时,元素的作用域正确,并且qTips仅在新元素上初始化。
Updated Example
// ...
while (count-- > 0) {
$cloned = first_row.clone();
loadQtip($cloned.find('.tips'));
$cloned.appendTo('#blacklistgrid');
}
// ...
function loadQtip(selector) {
$(selector).qtip({
// ...
});
}
// ...
另外,值得指出的是,属性
data-hasqtip
已添加到所有已初始化工具提示的元素中。因此,您可以使用选择器.tips
否定所有具有data-hasqtip
属性的.tips:not([data-hasqtip])
元素。但是,这实际上不适用于您的情况,因为您正在克隆已经具有该属性的元素。您可以通过在元素具有该属性之前克隆它们来解决此问题。
Example Here
function loadQtip(selector) {
$('.tips:not([data-hasqtip])').qtip({
// ...
});
}
关于javascript - 使用qtip的动态javascript数据会用相同的消息覆盖所有工具提示,我们在Stack Overflow上找到一个类似的问题:https://stackoverflow.com/questions/34497097/