我正在使用qTip插件为BOTH alt和title标签创建工具提示。这样做的原因是因为在我正在处理的应用程序中,我无法将图像上的所有alt标记转换为标题标记,因此必须同时使用这两个标记:
e.g。
$('*[title]').qtip({
content: {
attr: 'title'
},
hide: {
fixed: false,
event: 'click mouseleave'
},
position: {
target: "mouse",
adjust: {
x: 20,
y: 10,
method: "flipinvert flipinvert"
},
container: false,
viewport: true,
at: "right center",
my: "left center"
},
style: {
classes: "ui-tooltip-tipsy",
tip: {
corner: false
}
}
});
$('img[alt]').qtip({
content: {
attr: 'alt'
},
hide: {
fixed: false,
event: 'click mouseleave'
},
position: {
target: "mouse",
adjust: {
x: 20,
y: 10,
method: "flipinvert flipinvert"
},
container: false,
viewport: true,
at: "right center",
my: "left center"
},
style: {
classes: "ui-tooltip-tipsy",
tip: {
corner: false
}
}
});
我遇到的问题是,如果我有一个标题包装图像的链接,我将得到两个不正确行为的工具提示。
我的想法是做一些逻辑检查,如果我悬停的元素有一个标题标签或alt标签,那么只做一个或另一个,而不是两个。
例如,如果<a href="#" title="Tooltip info"><img src="#" alt="Tooltip info"></a>
那么在这种情况下它应该使用alt或title标签。
有人可以帮忙吗?感谢
示例:
$('a').hover(function() {
if($(this).attr('title')) {
// dont run the alt tag tooltip code
}
});
答案 0 :(得分:3)
您可以使用以下选择器作为第一个
$('*[title]:not(:has([alt]))').qtip({.....
它将做的是,它会选择title
属性的所有元素,这些元素没有任何具有alt
属性的子元素。
答案 1 :(得分:1)
试试这个:
$('*[title]:not(:has([alt]))').qtip({
// code
});
会在代码中过滤title
并排除那些孩子的alt
。