不确定$(这个)指向这里

时间:2015-09-21 21:09:43

标签: jquery jquery-selectors this mouseover

在JQUery中使用$(this)只是一个简单的问题。

如果你有类似的话:

$('li.biz').mouseover(function(){
  $(this).find('a.invisB').slideDown();
});

$(这个)选择什么?它是否选择了鼠标悬停的单个li.biz元素,然后滑动相应的后代元素,或者当鼠标悬停事件发生时它会选择具有biz类的所有li元素吗?

2 个答案:

答案 0 :(得分:1)

来自.mouseover(function)文档:

  

此方法是.on(“mouseover”,handler)

的快捷方式

来自.on文档:

  

当jQuery调用处理程序时,this关键字是对该处理程序的引用   事件交付的元素;对于直接绑定的事件   这是附加事件和委托事件的元素   事件这是一个匹配selector的元素。

换句话说,this只是DOM元素。在您的方案中,将是触发事件的li.biz。由于this只是一个DOM元素,因此需要将其包装($(this))以便在其上调用jQuery函数。

答案 1 :(得分:1)

在这种情况下:

$('li.biz').mouseover(function(){
  $(this).find('a.invisB').slideDown();
});

$(this)指的是li.biz,目前正在徘徊的'li.biz'。

设置为使用类'invisB'在其中查找锚标记(链接)并应用函数slideDown();它。

这是一个小提琴,只有一个简单的例子:https://jsfiddle.net/d9rbrqqd/