Exception 引导工具提示“;未捕获类型错误:无法读取属性';触发器';“无效”的定义;

Exception 引导工具提示“;未捕获类型错误:无法读取属性';触发器';“无效”的定义;,exception,twitter-bootstrap-3,tooltip,flicker,Exception,Twitter Bootstrap 3,Tooltip,Flicker,当我尝试显示新的工具提示时,在销毁旧的工具提示后,我在Chrome控制台中得到“UncaughtTypeError:无法读取null的属性'trigger' 然后,当我在挖掘引导代码时,我发现: 我怀疑这是我得到的例外情况的原因: 在创建新工具提示时,我尝试使用“选择器”和“容器”属性。 一个有效的方法是在另一个按钮上添加一个事件侦听器,以销毁工具提示,这样当我再次单击register时,它可以正常工作,并且不会引发异常 示例可在以下位置找到(单击“注册”两次): 代码: $(“表单#注册”)

当我尝试显示新的工具提示时,在销毁旧的工具提示后,我在Chrome控制台中得到“UncaughtTypeError:无法读取null的属性'trigger'

然后,当我在挖掘引导代码时,我发现: 我怀疑这是我得到的例外情况的原因:

在创建新工具提示时,我尝试使用“选择器”和“容器”属性。 一个有效的方法是在另一个按钮上添加一个事件侦听器,以销毁工具提示,这样当我再次单击register时,它可以正常工作,并且不会引发异常

示例可在以下位置找到(单击“注册”两次): 代码:

$(“表单#注册”)。在(“单击”,“按钮[name='btnRegister']”上,函数(){
//销毁工具提示(如果存在)
$(“输入[name='email'])。工具提示('destroy');
//添加新的
$(“input[name='email'])。工具提示({title:“CYKA BLYAAAAAAT,IDI NAHUI!”,
位置:'底部',
模板:“”+
'' +
'' +
''});
//显示出来
$(“输入[name='email']”)。工具提示('show');
});
$(“form#register”)。在(“单击”、“按钮[name='BTNDestory']”上,函数(){
//破坏工具提示
$(“输入[name='email'])。工具提示('destroy');
});
在我向您展示的示例中,这样做有点无用,因为只有1个输入。但在我的网站上,我希望发生的是:

  • 销毁任何可能存在的工具提示
  • 验证用户输入
  • 如果输入无效,我想向该输入元素添加新的工具提示
  • 我发现有人遇到的最类似的问题是: 但这并不能解决我的问题


    提前感谢。

    由于销毁html元素可能需要一些时间,而且销毁的某些部分甚至可能是异步处理的,因此在创建/显示新工具提示时,可能会遇到不需要的状态

    将工具提示的初始化和显示包装在setTimeout(f(),t)中 t[250400]在这里工作正常,请检查。 您不应该使用销毁按钮

    setTimeout(function() {
        $("input[name='email']").tooltip({title: "CYKA BLYAAAAAAT, IDI NAHUI!",
                                        placement: 'bottom',
                                        template:'<div class="tooltip" role="tooltip">' +
                                        '<div class="tooltip-arrow"></div>' +
                                        '<div class="tooltip-inner"></div>' +
                                        '</div>'});
    
        //Shows it
        $("input[name='email']").tooltip('show');
      }, 250);
    });
    
    setTimeout(函数(){
    $(“input[name='email'])。工具提示({title:“CYKA BLYAAAAAAT,IDI NAHUI!”,
    位置:'底部',
    模板:“”+
    '' +
    '' +
    ''});
    //显示出来
    $(“输入[name='email']”)。工具提示('show');
    }, 250);
    });
    
    接受的答案可能无法解决此问题。BS工具提示和popover的问题是,如果手动触发它们,则必须指定手动触发它们,否则BS将创建创建/销毁工具提示的目标元素事件

    ...
    placement: 'bottom',
    trigger: 'manual',
    ...
        
    
    ...
    placement: 'bottom',
    trigger: 'manual',
    ...