在JQUery中使用$(this)只是一个简单的问题。
如果你有类似的话:
$('li.biz').mouseover(function(){
$(this).find('a.invisB').slideDown();
});
$(这个)选择什么?它是否选择了鼠标悬停的单个li.biz元素,然后滑动相应的后代元素,或者当鼠标悬停事件发生时它会选择具有biz类的所有li元素吗?
答案 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/