不确定 $(this) 在这里指向什么
Not Sure About What $(this) points to here
关于在 JQUery.
中使用 $(this) 的简单问题
如果你有类似的东西:
$('li.biz').mouseover(function(){
$(this).find('a.invisB').slideDown();
});
$(this) select 会是什么?它是 select 您将鼠标悬停在单个 li.biz 元素上然后向下滑动适当的后代元素,还是会 select 所有带有 biz class 的 li 元素当鼠标悬停事件发生时?
来自 .mouseover(function)
文档:
This method is a shortcut for .on( "mouseover", handler )
来自 .on
文档:
When jQuery calls a handler, the this
keyword is a reference to the
element where the event is being delivered; for directly bound events
this is the element where the event was attached and for delegated
events this is an element matching selector
.
换句话说,this
就是 DOM 元素。在您的场景中,这将是触发事件的 li.biz
。由于 this
只是一个 DOM 元素,您需要包装它 ($(this)
) 以便在其上调用 jQuery 函数。
在这种情况下:
$('li.biz').mouseover(function(){
$(this).find('a.invisB').slideDown();
});
$(this)指的是li.biz,当前悬停的'li.biz'
它被设置为使用class 'invisB'在其中找到一个锚标签(link)并应用函数slideDown();
这里有一个fiddle,有一个简单的例子:https://jsfiddle.net/d9rbrqqd/
关于在 JQUery.
中使用 $(this) 的简单问题如果你有类似的东西:
$('li.biz').mouseover(function(){
$(this).find('a.invisB').slideDown();
});
$(this) select 会是什么?它是 select 您将鼠标悬停在单个 li.biz 元素上然后向下滑动适当的后代元素,还是会 select 所有带有 biz class 的 li 元素当鼠标悬停事件发生时?
来自 .mouseover(function)
文档:
This method is a shortcut for .on( "mouseover", handler )
来自 .on
文档:
When jQuery calls a handler, the
this
keyword is a reference to the element where the event is being delivered; for directly bound events this is the element where the event was attached and for delegated events this is an element matchingselector
.
换句话说,this
就是 DOM 元素。在您的场景中,这将是触发事件的 li.biz
。由于 this
只是一个 DOM 元素,您需要包装它 ($(this)
) 以便在其上调用 jQuery 函数。
在这种情况下:
$('li.biz').mouseover(function(){
$(this).find('a.invisB').slideDown();
});
$(this)指的是li.biz,当前悬停的'li.biz'
它被设置为使用class 'invisB'在其中找到一个锚标签(link)并应用函数slideDown();
这里有一个fiddle,有一个简单的例子:https://jsfiddle.net/d9rbrqqd/