gpt4 book ai didi

javascript - 仅在完全创建时显示工具提示

转载 作者:行者123 更新时间:2023-11-28 21:03:32 25 4
gpt4 key购买 nike

我为我的网站创建了很好的工具提示,但是当我快速使用鼠标且在缓存数据之前,我遇到了问题。

情况是这样的:我从数据库动态创建工具提示。为了做到这一点,我有 2 个 ajax 调用,创建了很多 dom 来准确地得到我想要的等等。函数正在一一调用自己,但结果是在工具提示完全创建之前显示的。

为了触发显示,我使用了一个:

$('a').live('mouseenter',function(){
BuildTooltip(this);
$('#tooltipdiv').css('visibility','visible');
});

我希望工具提示仅在 ajax 调用完成时显示,工具提示已完全创建,并且不会与上一个或类似的内容重叠。当 ajax 被缓存时可以正常工作,但当 ajax 没有被缓存时则无法正常工作。

我尝试使用 async:false,但它创建的卡住比工具提示重叠不太用户友好我尝试了回调,但它似乎没有像我想要的那样工作......或者也许我做得不好。

欢迎任何帮助:)

编辑:

这是我的 BuildTooltip 函数的代码。然而它调用了其他函数,所有内容都在 400 行左右,我不会全部复制:(

function BuildTooltip(element){
$('#tooltipdiv').remove();
if(String(element).indexOf('dbitem.php?db=')!=-1){
url=String(element);
var db=url.substring(url.indexOf('=')+1,url.indexOf('&'));
$('body').append('<div class="" id="tooltipdiv"><div class="" id="uctt">\
<div class="" id="itemttheader"></div><span class="" id="nomitem">\
</span><div class="" id="imgitem"><img></img></div><div class="" id="type">\
</div></div><div id="cd"></div><div class="" id="armor"><span class="" id="minarmor">\
</span><span class="hash">-</span><span class="" id="maxarmor"></span> Armor</div><div class="" id="dmgweap">\
<span class="" id="min"></span><span class="hash">-</span><span class="" id="max"></span> Damage</div>\
<div class="" id="dmgweapnorm"><span class="" id="minmin"></span>\
<span class="hash">-</span><span class="" id="maxmin"></span><span class="hash">-</span><span class="" id="minmax"></span><span class="hash">-</span>\
<span class="" id="maxmax"></span> Damage</div><div class="" id="dpsnorm">\
<span class="" id="mindamagepersec"></span> <span class="hash">-</span> <span class="" id="maxdamagepersec">\
</span><p> Damage Per Second</p></div><div class="" id="dps"><span class="" id="damagepersec">\
</span><p> Damage Per Second</p></div><div class="" id="attackspeed"><span class="" id="aps">\
</span> Attacks Per Second</div><div class="" id="effect"></div><div class="" id="effectpsk">\
</div><span class="" id="slot"></span><div id="useless"></div><div id="set"><span></span><div id="part0" class="part"></div>\
<div id="part1" class="part"></div><div id="part2" class="part"></div><div id="part3" class="part"></div>\
<div id="part4" class="part"></div><div id="part5" class="part"></div></div><div class="" id="requiredlevel">Required level : \
<span class="" id="minlvl"></span></div><div class="" id="rewards">Rewards : \
<span class="" id="reward"></span></div><div class="" id="points">\
<span class="" id="point"></span> Points</div><div class="" id="durability">\
Durability : <span class="" id="duramin"></span><span class="hash">-</span><span class="" id="duramax">\
</span></div></div></div>');
var offset=$(element).offset();
request = $.ajax({
url: "getphp/gettooltip.php",
type: "GET",
data: {db : db, id : url.substring(url.lastIndexOf('=')+1)},
dataType: "JSON"
});
request.done(function(msg){
FillInTooltip(msg,db)
});
}

}

FillInTooltip 函数使用 ajax 的结果,对其进行格式化,将其包含在 div 中,如果结果与条件匹配,则调用其他 ajax 等

最佳答案

您可以在 Ajax 请求成功时显示工具提示:

$.ajax({
type: "POST",
url: URL, // your url
success: function (html) {
$('#tooltipdiv').css('visibility','visible');
}
});

现在,在 Ajax 请求完成之前,不应显示工具提示。

关于javascript - 仅在完全创建时显示工具提示,我们在Stack Overflow上找到一个类似的问题: https://stackoverflow.com/questions/10431971/

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