我正在使用tippy.js在asp.net mvc应用程序中生成工具提示。 我试图根据另一个元素,下拉列表动态更改工具提示的文本。我遇到的问题是“旧的”工具提示显示在彼此之上。
这是我的代码(简化):
$(document).on('change', '.partyStatus', function (event) {
event.preventDefault();
event.stopImmediatePropagation(); //stops propagation of click event to other element having the same ID
if (this.value == 5) //Visitor => no autocomplete: free text...
{
partyNameInput.className = "form-control partyName tip";
partyNameInput.title = "Please enter the visitor name.";
tooltip('.tip', 'ehs');
}
else {
partyNameInput.className = "form-control autocomplete_party partyName tip";
partyNameInput.title = "Type in the first letter of a surname, and pick the person from the list.";
tooltip('.tip', 'ehs');
}
});
工具提示功能:
function tooltip(selector, userTheme) {
tippy(selector, {
theme: userTheme,
position: 'right',
animation: 'scale',
duration: 600
})
}
答案 0 :(得分:2)
您需要将dynamicTitle选项设置为true。
tippy(selector, {
theme: userTheme,
position: 'right',
animation: scale,
dynamicTitle: true
})
然后你可以在onClick或onHover
上更改元素的title属性element.addEventListener('click', function() {
this.setAttribute('title', 'New tooltip title here!');
})
来源TippyJS文档:https://atomiks.github.io/tippyjs/
答案 1 :(得分:0)
对于 Tippy v6,文档中说明了如何 1) get the tippy property 和 2) how to set the content。
例如,让我们在元素具有“active”类时显示“Hide”,当元素没有“active”类时显示“Show”:
$(document).on('click', '.filter', function (){
if( $(this).hasClass('active') ){
this._tippy.setContent('Hide')
}else{
this._tippy.setContent('Show');
}
})