Javascript 将引导工具提示设置为AJAX调用结果

Javascript 将引导工具提示设置为AJAX调用结果,javascript,jquery,ajax,twitter-bootstrap,Javascript,Jquery,Ajax,Twitter Bootstrap,我有一个工具提示,希望从AJAX请求加载数据,请求中的文本是工具提示的title属性。我的AJAX请求工作正常,但我有两个问题: 为什么来自AJAX调用的数据没有进入工具提示 如何使用ttManager对象封装工具提示的状态 当前,当页面首次加载时,我在控制台中单击#btnSubmit,我看到 success和console.log(ttManager)行中的正确数据 我很确定我需要一个回调函数,但我不确定在哪里。任何未来的指点也将不胜感激。谢谢。首先,介绍一下bootstrap的工具提示插件。

我有一个工具提示,希望从AJAX请求加载数据,请求中的文本是工具提示的
title
属性。我的AJAX请求工作正常,但我有两个问题:

  • 为什么来自AJAX调用的数据没有进入工具提示
  • 如何使用
    ttManager
    对象封装工具提示的状态
  • 当前,当页面首次加载时,我在控制台中单击
    #btnSubmit
    ,我看到
    success
    和console.log(ttManager)行中的正确数据


    我很确定我需要一个回调函数,但我不确定在哪里。任何未来的指点也将不胜感激。谢谢。

    首先,介绍一下bootstrap的工具提示插件。如果存在元素
    title
    属性,则显示的工具提示将从该属性中提取,否则将使用传递的title参数

    接下来需要了解的是ajax调用是异步的。这意味着代码在等待响应时将继续运行。比如说,如果我做了这样的事情

    $.ajax({
        URL: 'google.com',
        success: function(){
            console.log('yay');
        }
    });
    console.log('woohoo');
    
    你会在控制台中看到“呜呜”在“耶”之前。因此,目前,您正在调用
    $(“#btnSubmit”)。在ajax查询更改ttManager的状态之前,工具提示

    另一个问题是,您目前没有使用ttManager执行与引导相关的任何操作。我觉得我还应该提到ttManager对象在这里似乎没有意义

    就我个人而言,我会将我的ajax成功函数改为(设置title属性,调用tooltip,然后再次单击以显示工具提示)

    删除当前的
    $(“#btnSubmit”)。工具提示…
    当前存在的代码,并添加一个一次性单击处理程序来调用ajax

    $('#btnSubmit').one('click', function() {
        ajaxCall();
    });
    

    你用的是哪个版本的BS?我用的是boostrap 3.0完美版。我知道由于是异步的,AJAX将是未定义的,所以我尝试创建一个闭包并立即执行ajaxCall,但没有成功。那么,假设我想跟踪工具提示的状态,使用对象文字会是一个坏主意吗?或者是因为在这个小例子中,我不能充分展示它的用途。工作很好,顺便说一句。谢谢:)在这种特殊情况下,它只会是更多的开销;拥有一个状态对象并不是一个坏习惯,在我看来这只是一个糟糕的用例。那么,什么是
    点击这里?我试图用()而不是单击来执行函数,但出现了一个错误。
    click
    如果没有参数,jQuery将模拟单击按钮并触发任何相关事件。通过模拟单击,我们可以确保用户只需单击按钮一次即可查看工具提示。
    success: function(data) {
        $('#btnSubmit').attr('title', data.d)
        .tooltip({
            trigger: 'click',
            placement: 'right'
        }).click();
    }
    
    $('#btnSubmit').one('click', function() {
        ajaxCall();
    });