【问题标题】:jQuery hover function with keyword: 'this'带有关键字的jQuery悬停功能:'this'
【发布时间】:2013-03-04 03:47:13
【问题描述】:

我无法理解和使用 $(this) 关键字。例如,使用来自http://api.jquery.com/hover/的悬停类示例

HTML

 <ul>
    <li>Milk</li>
    <li>Bread</li>
    <li class='fade'>Chips</li>
    <li class='fade'>Socks</li>
</ul>

<div class='fade'>My Div<div>

JQUERY

这将在所有 &lt;li&gt; 元素上添加函数。

$("li").hover(
    function () {
        $(this).append($("<span> ***</span>"));
    },
    function () {
        $(this).find("span:last").remove();
    }
);

如果我只想在淡入淡出类上添加函数。 我可以这样做

$("li.fade").hover(
    function () {
        $(this).append($("<span> ***</span>"));
    },
    function () {
        $(this).find("span:last").remove();
    }
);

这会选择所有淡入淡出类,包括 DIV

 $("li").hover(
        function () {
            $('.fade').append($("<span> ***</span>"));
        },
        function () {
            $('.fade').find("span:last").remove();
        }
    );

为什么这不起作用?

$("li").hover(
    function () {
        $(".fade", this).append($("<span> ***</span>"));
    },
    function () {
        $(".fade", this).find("span:last").remove();
    }
);

我正在学习尝试学习 jQuery。谢谢!

【问题讨论】:

  • 你试过这样吗? $(".fade", $(this)).append($(" ***"));
  • 不起作用。 jsfiddle.net/W5AQV/5
  • @awbergs:这没什么区别。 contect可以是一个元素,也可以是包含该元素的jQuery对象,结果是一样的。

标签: jquery hover this


【解决方案1】:

调用$(".fade", this) 将在this 表示的元素内查找类fade 的元素。它与$(this).find(".fade") 的作用相同。

由于this 是引发hover 事件的元素,它是一个li 元素,所以它不会找到任何东西,因为该类在该元素上,而不是在该元素的任何子元素上元素。

【讨论】:

  • 哇!你在几秒钟内回答了它,我花了大约 10 分钟来构建这个问题。非常感谢!
猜你喜欢
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 1970-01-01
  • 2013-06-24
  • 2012-11-05
  • 1970-01-01
  • 2011-06-30
相关资源
最近更新 更多