【发布时间】:2015-09-29 19:23:42
【问题描述】:
我正在进行 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")) 条件。但还是不行。
【问题讨论】:
-
我认为你需要在 show() 中定位一个 DOM 元素,比如 tooltip.show($("#target")); docs.telerik.com/KENDO-UI/api/javascript/ui/…
-
我也试过了。没有效果。问题不在于它没有显示。问题是它在不应该显示的时候显示。
标签: javascript jquery css ajax kendo-ui