Javascript AJAX剑道工具提示比赛条件

Javascript AJAX剑道工具提示比赛条件,javascript,jquery,css,ajax,kendo-ui,Javascript,Jquery,Css,Ajax,Kendo Ui,我正在进行一个AJAX调用,通过POST请求检索一些数据。然后,我使用该数据创建工具提示。代码如下: j$("#selectorID").one('mouseover', function(e) { var ticketType = e.target.classList[2]; var ticketID = j$(e.target).data("ticket-id"); j$.post("/Some/Url/", {

我正在进行一个AJAX调用,通过POST请求检索一些数据。然后,我使用该数据创建工具提示。代码如下:

j$("#selectorID").one('mouseover',
    function(e) {
        var ticketType = e.target.classList[2];
        var ticketID = j$(e.target).data("ticket-id");
        j$.post("/Some/Url/",
            { "ticketID":ticketID, "ticketType":ticketType },
            function(r) {
                var title = r["title"];
                var tooltip = j$(e.target).kendoTooltip( { content: title, position: "top" } ).data("kendoTooltip");
                if (j$(e.target).is(":hover")) { tooltip.show(); }    // Race condition
            }
        );
    }
);
我相信这是一个竞赛条件,因为即使我的鼠标离开了它,工具提示仍然会出现。然后我必须把我的点放在元素上,然后再把它移开,让它消失。如何解决这个问题

我尝试了一些不同的方法,包括
if(j$(e.target).is(“:hover”)
条件。但是它仍然不能起作用。

请看这个问题:

:hover是CSS伪类,而不是可与.is()一起使用的jQuery选择器

请尝试以下方法:

var id = $(e.target).prop("id");                      
if ($("#" + id + ":hover").length > 0) { tooltip.show(); }    


好的,经过几个小时的搜索,我终于找到了我自己问题的答案

我在UI上看到的问题——工具提示不会消失,有时会同时显示两个工具提示——不是比赛条件的结果。

结果是,当您在同一网页中使用多个剑道工具提示实例时,您需要手动隐藏/显示它们,以确保不会出现错误的工具提示

针对这个问题,本文对解决方案进行了概述

具体而言,我通过添加以下内容解决了我的问题:

j$("#selectorID").hover(function() {}, 
        // Handler for when the pointer is leaving an element
        function(e) {
            if (j$(e.target).data("kendoTooltip") !== undefined) {
                j$(e.target).data("kendoTooltip").hide();
            }
        });

我认为需要在show()中以DOM元素为目标,比如tooltip.show($(“#target”);我也试过了。没有效果。问题不在于它没有表现出来。问题是它在不应该显示的时候显示。非常感谢您的回复!我尝试了你提到的方法,不幸的是我得到了
不支持的pseudo:hover
。还有别的办法吗?您是否认为如果中的我的条件计算不正确,这就是导致工具提示在不应该显示时显示的原因?工具提示并不总是错误显示,只是随机显示。所以我不确定这是否是条件。@RichieEpiscopo,像这样检查mouseout怎么样: