2016-05-11 139 views
1

我对JQuery很新。我正在使用this JQuery函数来显示元素的工具提示。

我编辑的代码,这样,根据我的需要(与这个社会的帮助下):

$(document).ready(function() { 
    $('.toolTipField').each(function() { 
    $(this).tooltipster({ 
     content: $('<span>' + $(this).attr("data-tooltipText") + '</span>') 
    }); 
    }); 
}); 

我需要还显示工具提示的添加到DOM与这个jQuery功能要素:

$("#element").clone().appendTo("#target") 

现在工具提示不适用于使用JQuery添加到DOM的元素。看着互联网,我发现我必须使用方法on()而不是ready(),但我不知道如何正确编辑我的代码。

谢谢大家。

+3

所以调用代码提示你添加的元素...'on'是不会为你在这种情况工作岗位。 – epascarello

+0

我明白了。任何解决方案 – MDP

+1

调用克隆元素上的工具提示代码。如果您不想重复代码,请制作方法并调用它。 – epascarello

回答

4

事件代表团不会解决您的问题。它不会在同步检测时将元素添加到文档中。您需要手动调用代码来添加您的工具提示。最好的办法是将代码分解出来,这样它就可以重复使用,并且可以在准备好时以及在克隆元素时调用该方法。

function addToolTips (elems) { 
    elems.each(function() { 
    $(this).tooltipster({ 
     content: $('<span>' + $(this).attr("data-tooltipText") + '</span>') 
    }); 
    }); 
} 


$(document).ready(function() { 
    addToolTips($('.toolTipField')) 
}); 

,当你克隆元素

var clonedElem = $("#element").clone().appendTo("#target"); 
addToolTips(clonedElem); 
+0

超完美的解决方案!万分感谢!! – MDP

2
var myClone = $('el').clone(); 
myClone.appendTo('target'); 
myClone.tooltipster({....}); 
-1

jQuery为您提供当时存在的元素,而不是稍后添加的元素。如果添加它们,则必须添加工具提示也