我已经编写了一个Flask服务器端的网站,用于监控我运行的其他构建机器上构建的数据。在监控页面上,我了解每隔几秒更新的特定机器的当前状态。我希望能够将鼠标悬停在某些机器的名称上,并弹出一个工具提示,显示它正在构建的当前数据。我目前内置了将数据服务器端存储在数据库中并轮询数据库的功能。但截至目前,它返回数据的所有状态。我没关系,但我不能区分它所在的元素,所以我无法显示正确的数据。在我的鼠标悬停功能中,我有一个ajax调用,在成功函数中我有关于当前DOM元素的信息。
$('.target').mouseover(function() {
$.getJSON('/_get_platform', {
statusID: {{ statusID }}
}, function(data) {
var $this=$(this);
var $tip=$($this.attr('data-tooltip'));
}); //end getjson
}); //end mouseover
我想将$ tip与(例如)id #debugTip进行比较。因此,如果我知道鼠标位于具有id debugTip的元素上,那么我可以显示与此元素关联的相应数据。
(为了简洁,我已经删除了所有无关的代码,例如工具提示等)
有人能告诉我如何将其与我所知道的相提并论吗?我尝试过使用$ tip =='#debugTip'和$ tip.is('#debugTip'),但要么不起作用,要么我没有正确使用它。谁知道我的错误是什么?
提前致谢!!
答案 0 :(得分:1)
如果您正在尝试检查$('。target')元素是否具有“#debugTip”ID,那么您可以执行以下操作:
if($tip.is("#debugTip")){
console.log('Debug data here');
}
答案 1 :(得分:1)
在您执行ajax请求之前,您只能访问executeQuery()
。所以你必须在进入ajax回调之前存储技巧。
this
希望这有帮助。
答案 2 :(得分:0)
如果你需要引用鼠标悬停的元素,你需要将它保存在变量中,然后你可以在$ .getJSON的回调中引用它。
$('.target').mouseover(function() {
var mouseOveredElement = $(this);
$.getJSON('/_get_platform', {
statusID: {{ statusID }}
}, function(data) {
var tip=$(mouseOveredElement).attr('data-tooltip');
}); //end getjson
}); //end mouseover