我有以下代码:
text
如您所见,我正在尝试在setTimeout-function中设置工具提示文本。但它不会出现。当我用一些虚拟文本替换{{1}} - 变量时,它可以工作。但是变量值不起作用。
答案 0 :(得分:0)
使用超时时,this
将位于窗口范围内,而不是元素。所以你实际上是在窗口中添加属性。
其次,无法保证在Ajax调用之后使用超时可能会进行ajax调用。您应该在Ajax调用的成功回调中设置属性。
第三,您可能需要手动触发工具提示,以便获取更新的数据。
var elem = $(this);
$.ajax({
/* your code here, removed to simplify answer*/
success: function (data) {
elem.attr('data-toggle', 'tooltip');
elem.attr('title', text);
elem.tooltip().tooltip("show"); // might need to change this line based on actual library
}
});
答案 1 :(得分:0)
我假设你的ajax成功花费了更多时间,因此在" text"之前首先调用setTimeout函数。变量值在成功函数中设置。尝试在onsuccess ajax函数中调用函数。
var text = "";
$.ajax({
contentType: "application/json; charset=utf-8",
dataType: "json",
type: "POST",
url: DataReview.BASE + "/Encryption/FetchLatestEditBy",
data: JSON.stringify({
"ExtendedReport_id": dataRow["ExtendedReport_id"],
"Report_id": dataRow["Report_id"]
}),
success: function (data) {
text = data.ResultData;
settooltiptext();
},
error: function (data) {
console.log(data);
}
});
function settooltiptext()
{
console.log(text); //This displays the value
$(this).attr('data-toggle', 'tooltip');
$(this).attr('title', text);
}