我正在尝试动态地将工具提示文本设置为容器(div),并使用jQuery为每个div元素(elem.Alias-Status)添加到有序列表中:
function addNewElement(elem) {
var li = $("<li></li>");
li.prop("class", "ui-state-default");
li.prop("id", elem.Alias);
li.text(elem.Name);
var newItem = '<div id="' + elem.Alias + '-Status" class="elementStatus" tooltipText="' + elem.IP + '"><div class="image"><img id="' + elem.Alias + '-StatusImg" src="@Url.Content("~/images/ongoing.gif")"></div><div id="' + elem.Alias + '-StatusTxt" class="text">Waiting...</div></div>';
//$('#' + elem.Alias + '-Status').prop('tooltipText', elem. IP);
li.append(newItem);
li.appendTo($("#OuterDivContainer"));
};
但它显然不起作用。在运行时,当我将鼠标悬停在每个鼠标上时,不会显示任何工具提示。而且......我不知道该怎么做。我需要在创建项目的同时在此函数中创建它。
从另一个迭代所有项(元素)的函数调用上面的函数。然后这个函数作为参数elem传递给addNewElement函数。
有什么想法吗?
我正在使用jquery-ui 1.10.3和jquery 1.10.2
答案 0 :(得分:13)
适合我:
$(yourElement).prop('title', 'yourText');
答案 1 :(得分:1)
根据API(http://api.jqueryui.com/tooltip/#option-content),在您的情况下执行此操作的方法是在附加容器后初始化工具提示。
$('#' + elem.Alias + '-Status').tooltip({ content: elem.IP });
当然,您也可以在初始化后更改工具提示内容,如下所示:
$('#' + elem.Alias + '-Status').tooltip("option", "content", "New Content");
我最近遇到了这种困难并找到了许多其他方法,包括您尝试过的方法,在您的情况下,由于工具提示尚未初始化,因此无效。但这是正确的方法,对我有用。
答案 2 :(得分:-1)
这是code to set a tooltip for any element using jQuery。
<html>
<head>
<title>test</title>
<script type="text/javascript" src="jquery.min.js"></script>
</head>
<body>
<button class="hide tip" data="hello">tip button</button>
<script language="javascript" type="text/javascript">
var xoff = 0;
var yoff = 30;
$(".tip").unbind().hover(function(e){
this.top = (e.pageY + yoff);
this.left = (e.pageX + xoff);
var data = $(this).attr("data");
if(typeof(data)!='undefined'){
var tipcontainer = '<div class="hide" id="tipcontainer">'+data+'<div>';
$('body').append(tipcontainer);
$("#tipcontainer").css({"position":"absolute","top":this.top + "px","left":this.left + "px"}).fadeIn("fast");
}
},function(){
$("#tipcontainer").fadeOut("slow").remove();
}).mousemove(
function (e) {
this.top = (e.pageY + yoff);
this.left = (e.pageX + xoff);
$("#tipcontainer").css({"position":"absolute","top":this.top + "px","left":this.left + "px"});
}
);
</script>
</body>
</html>