Javascript 使用jQuery设置工具提示文本
我有以下代码:Javascript 使用jQuery设置工具提示文本,javascript,jquery,html,Javascript,Jquery,Html,我有以下代码: var text = ""; $.ajax({ contentType: "application/json; charset=utf-8", dataType: "json", type: "POST", url: DataReview.BASE + "/Encryption/FetchLatestEditBy", data: JSON.stringify({ "ExtendedReport_id": dataRow["E
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;
},
error: function (data) {
console.log(data);
}
});
setTimeout(function () {
console.log(text); //This displays the value
$(this).attr('data-toggle', 'tooltip');
$(this).attr('title', text);
}, 1000);
如您所见,我试图在setTimeout函数中设置工具提示文本。但它不会出现。当我用一些伪文本替换文本变量时,它就起作用了。但是变量值不起作用。当您使用timeout时,它将在窗口范围内,而不在元素中。因此,您实际上是在向窗口添加属性
其次,不能保证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
}
});
我假设ajax的成功需要更多的时间,因此在success函数中设置文本变量值之前首先调用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);
}
你能给我们看一个工作片段吗?@PraveenKumar:什么的工作片段?他指的是一个可以显示问题的实时版本或小提琴。@C0dekid:我不知道如何使用小提琴。但这很简单。文本变量的值在setTimeout函数中没有显示为工具提示,我不明白为什么。那么您使用的是bootstrap吗?虽然您对注释的计时完全正确,但显示的值表明它在这些特殊情况下工作。否则console.log将输出空字符串。我认为epascarello更接近问题所在,指出$this可能不是OP所期望的。有道理,我完全错过了console.log部分。谢谢你指出。谢谢你的回答!!: