这是我的代码
<a href="http://linkurl" class="link" title="sometitle">
text link
<span class="hidden-tooltip-data" style="display: none;"> <a
href="http://www.google.ca"> my link here destroy everything </a
</span>
</a>
我在这里使用Poshy脚本
$('.link').each(function() {
var tooltip = $(".hidden-tooltip-data",this).html();
$(this).attr("title","");
$(this).poshytip({
content: function(updateCallback) {
return tooltip;
}
});
});
答案 0 :(得分:4)
嵌套链接是非法的。 the HTML 4.01 Specification中明确提到了这种情况。
答案 1 :(得分:1)
首先,你不应该这样做。原因在于,孩子a
被完全忽略,因为它在父a
下。
我建议您制作一个span
,其中包含两个不同的a
标记,其中包含所需数量span
。
答案 2 :(得分:1)
您不应将链接放在另一个链接中。
答案 3 :(得分:0)
默认情况下,Poshytip会读取元素的title
属性并将其用作工具提示内容。但是,您希望在提示中包含一个链接,如果JavaScript被关闭(并且无法访问),将HTML放在title
中会显得很难看。
您最好的方法是为低级浏览器添加纯文本title
,并在data
属性中包含增强的提示内容(显式转义标记):
<a href="..." class="link" title="basic content" data-tip="enhanced content <a href="...">link</a>">...</a>
$('.link').each(function() {
$(this).attr('title','').poshytip({ content: $(this).data('tip') });
});
在类似的属性中包含标记显然会有点混乱,因此如果您的提示具有通用格式,则最好将URL包含为data
属性并在脚本中构建标记。
$('.link').each(function() {
$(this).attr('title','').poshytip({ content: '<a href="' + $(this).data('tiplink') + '">link</a>' });
});