我有一个wicket MultiLineLabel,它的内容来自数据库。现在,我需要在页面上悬停显示此MultiLineLabel文本作为工具提示。
你能告诉我应该如何解决这个问题(我是wicket的新手)。我应该使用jquery解决方案,还是应该在我的页面上添加onmouseover
和onmouseout
AjaxEventBehaviors
?
当我尝试jquery solution时,我不知道如何在工具提示中维护换行符。
请告诉我你的任何例子。
答案 0 :(得分:3)
我用标准标签对其进行了测试,结果如下:
Label ml;
String msg = "Hello! \n I'm here.";
add(ml = new Label("multiline",msg));
ml.add(AttributeModifier.append("title", msg));
<强>已更新强>
不幸的是,无法控制使用属性“title”生成的工具提示的样式,因为它是OS本机组件。但是,您可以轻松调整在http://www.mkyong.com/jquery/how-to-create-a-tooltips-with-jquery/找到的代码。 您可以将工具提示的文本放在自定义属性中,我们称之为'toolTipText':
String tooltipMsg = Strings.toMultilineMarkup(yourMsgFromDb).toString();
...
yourLabel.add(AttributeModifier.append("toolTipText", tooltipMsg));
请注意,您必须使用toMultilineMarkup来维护工具提示中的换行符。 现在您应该稍微修改函数showTooltip以使用插入到自定义属性中的值:
var showTooltip = function(event) {
$('div.tooltip').remove();
$('<div class="tooltip">' + $(this).attr('toolTipText') +'</div>')
.appendTo('body');
changeTooltipPosition(event);
};
最后,您必须告诉JQuery使用工具提示和您的标记。您必须使用与您的组件匹配的选择器替换“span #hint,label#username'”。
我已经过测试,似乎有效。