使用jQuery设置工具提示文本

时间:2016-03-21 15:08:26

标签: javascript jquery html

我有以下代码:

text

如您所见,我正在尝试在setTimeout-function中设置工具提示文本。但它不会出现。当我用一些虚拟文本替换{{1}} - 变量时,它可以工作。但是变量值不起作用。

2 个答案:

答案 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);
}