将$ this选择器与JQuery

时间:2015-08-25 21:25:09

标签: javascript jquery

我已经编写了一个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'),但要么不起作用,要么我没有正确使用它。谁知道我的错误是什么?

提前致谢!!

3 个答案:

答案 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