You need to enable JavaScript to run this app.
优惠活动
大模型
产品
解决方案
定价
更多

Bootstrap Tooltip在Div容器复制后失效问题咨询

解决Bootstrap Tooltip在克隆Div后失效的问题

这个问题我之前也碰到过,原因其实很直观:Bootstrap Tooltip是在页面首次加载时初始化绑定到现有DOM元素上的,你克隆出来的新Div属于动态生成的元素,并没有被Tooltip的初始化逻辑处理过,所以自然没法正常触发。另外你原有的克隆代码还有个小bug——先调用了$new_comp.find()但此时$new_comp还没定义,得先把顺序调对。

下面是修正后的完整解决方案:

步骤1:修复克隆代码的顺序与细节问题

先把克隆代码的逻辑顺序理顺,同时处理重复ID的问题(克隆后ID会重复,这是HTML规范不允许的,容易引发其他隐藏问题,建议移除或生成唯一ID):

$("#Clonemulti").click(function () {
    var $div = $('div[id^="Clone_CompMulDet"]:last');
    // 先克隆元素再做后续操作
    var $new_comp = $div.clone();
    // 清空新元素里的输入框内容
    $new_comp.find('input:text,textarea').val('');
    // 给新Div生成唯一ID,避免重复
    var uniqueSuffix = Date.now();
    $new_comp.attr('id', 'Clone_CompMulDet_' + uniqueSuffix);
    // 同步修改子元素的ID,确保页面内ID唯一
    $new_comp.find('#vc_legal_owner').attr('id', 'vc_legal_owner_' + uniqueSuffix);
    $new_comp.find('#Clonemulti').attr('id', 'Clonemulti_' + uniqueSuffix);
    // 将新元素插入到目标位置
    $div.after($new_comp);
    // 关键步骤:给新元素里的Tooltip重新初始化
    $new_comp.find('[data-toggle="tooltip"]').tooltip();
});

步骤2:确保原始Tooltip正常初始化

别忘了在页面加载完成时,先初始化页面上原本存在的Tooltip:

$(document).ready(function(){
    $('[data-toggle="tooltip"]').tooltip();
});

原理说明

  • 克隆操作只是复制了DOM的结构和属性,但Bootstrap Tooltip的事件监听、样式绑定等初始化逻辑不会自动作用于新生成的元素,所以必须手动调用.tooltip()来完成新元素的Tooltip初始化。
  • 处理重复ID是很必要的,HTML页面内ID必须唯一,重复的ID会导致JS选择器出错、样式失效等一系列问题。

内容的提问来源于stack exchange,提问作者Renjitha22

相关产品推荐
方舟 Agent Plan

超全模态模型 × Harness 升级,最新支持 Deepseek-V4.1-Flash、GLM-5.3 系列、Doubao-Seedream-5.0-pro、Kimi-K3 (部分), 限时 9.9 元起

最近更新时间:2026.05.15 08:22:31