我目前正在为我们的网站添加冗长的工具提示,我想(不必求助于一个神奇的jQuery插件,我知道有很多!)使用回车来格式化工具提示。

为了添加提示,我使用了title属性。我环顾了一下常用的网站,并使用了基本的模板:

<a title='Tool?Tip?On?New?Line'>link with tip</a>

我试过更换?:

< br / > &013;/ & # 13; \ r \ n 环境。换行符(我使用c#)

以上方法都行不通。这可能吗?


当前回答

“只需按下enter”的解决方案在这里不起作用,所以优秀的老香草JavaScript似乎是一种相当高效和干净的方法。

function customTitle(event, textHeader, text){
    let eventOrigin = event.target || event.srcElement;
    eventOrigin.title = textHeader + '\n\n' + text;
}

在元素onmouseover上:

onmouseover="customTitle(event, 'Some Caput', 'Some more or less complete description');"

瞧!它适用于谷歌Chrome和Firefox(不排除其他;我只是没有检查)。

其他回答

如果你试图在一个React项目中这样做,你将以下面的格式呈现:

title={`First line of text ${varOne} &#13; Second line of text ${varTwo} &#13; Third line of text ${varThree}`}

那么&#13;,&#10;类似的解决方案并不奏效。它们实际上会呈现为文本。

相反,根据需要实际创建文本是更好的选择。为了更好地理解,举个例子:

title={`First line of text ${varOne}
Second line of text ${varTwo}
Third line of text ${varThree}`}

确保在“第二行文本”和“第三行文本”之前删除制表符/空格缩进。否则他们也会渲染。

它在谷歌Chrome 96和Firefox 95.0b12(开发者版,因为,为什么不呢)上进行了测试。它应该也适用于大多数现代浏览器。

剃须刀的语法

在ASP的情况下。NET MVC,你可以把标题存储为变量,作为\r\n,就可以了。

@{
    var logTooltip = "Sunday\r\nMonday\r\netc.";
}

<h3 title="@logTooltip">Logs</h3>

这里是一个演示:http://jsfiddle.net/rzea/vsp6840b/3/

HTML使用:

<a href="#" title="First Line&#013;Second Line">Multiline Tooltip</a>
<br>
<br>
<a href="#" title="List:
  • List item here
  • Another list item here
  • Aaaand another list item, lol">Unordered list tooltip</a>

值得一提的是,如果你用JavaScript设置title属性,如下所示:

divElement。setAttribute("title", "第一行&#10;第二行");

这是行不通的。你必须将ASCII十进制10替换为ASCII十六进制a按照JavaScript转义的方式。是这样的:

divElement。setAttribute("title", "Line one\x0ALine two");

就用这个吧:

<a title='Tool&#x0aTip&#x0aOn&#x0aNew&#x0aLine'>link with tip</a>

您可以使用&#x0a在标题上添加新行。