... 在页面上是静态的,但在选项卡中也是动态的。 所以下面的代码适用-6ren">
gpt4 book ai didi

Javascript : Tippy. js 不适用于动态内容

转载 作者:行者123 更新时间:2023-11-29 10:58:20 25 4
gpt4 key购买 nike

我有以下技巧,悬停在 Ajax 调用的位置并获取数据,创建内容并将其显示在上面。但它不适用于动态内容,因为在页面加载

<span class="more-tags otherPostTags" data-postId="{{$post->id}}">...</span>

在页面上是静态的,但在选项卡中也是动态的。

所以下面的代码适用于静态

<span class="more-tags otherPostTags" data-postId="{{$post->id}}">...</span>

但不适用于动态。

<div id="template" style="display: none;">
Loading a new image...
</div>

<span class="more-tags otherPostTags" data-postId="{{$post->id}}">...</span>

尖尖的 jquery :

const template = document.querySelector('#template');
const initialText = template.textContent;

const tip = tippy('.otherPostTags', {
animation: 'shift-toward',
arrow: true,
html: '#template',
onShow() {
const content = this.querySelector('.tippy-content')
if (tip.loading || content.innerHTML !== initialText) return
tip.loading = true
node = document.querySelectorAll('[data-tippy]');
let id = node[0].dataset.postid;
$.ajax({
url: '/get/post/'+id+'/tags',
type: 'GET',
success: function(res){
let preparedMarkup = '';
res.tags.map(function(item) {
preparedMarkup +=
'<span class="orange-tag" style="background-color: '+item.color+'">'+
item.name +
'</span>';
});
content.innerHTML = preparedMarkup;
tip.loading = false
},
error: function(error) {
console.log(error);
content.innerHTML = 'Loading failed';
tip.loading = false
},
});
},
onHidden() {
const content = this.querySelector('.tippy-content');
content.innerHTML = initialText;

},
popperOptions: {
modifiers: {
preventOverflow: {
enabled: false
},
hide: {
enabled: false
}
}
}
});

我在这里错过了什么?

最佳答案

这在 newer Tippy Version 中发生了变化.

你需要从tippy.js导入delegate方法:

import { delegate } from 'tippy.js';

然后使用根元素上的委托(delegate)方法启动你的提示工具,并通过 target 属性设置将具有实际工具提示的元素的选择器:

delegate( '#root', {
target: '[data-tippy-content]'
} );

确保 #root 元素确实存在于您的应用程序中,或者使用其他任何元素,例如 body。然后确保为实际元素提供 data-tippy-content 属性或相应地更改 target 选择器。

关于Javascript : Tippy. js 不适用于动态内容,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/52381990/

25 4 0
Copyright 2021 - 2024 cfsdn All Rights Reserved 蜀ICP备2022000587号
广告合作:1813099741@qq.com 6ren.com