当前位置: 首页 > 面试题库 >

jQuery:“ $(this)”到底是什么意思?

高嘉熙
2023-03-14
问题内容

这是代码:

<div id="round"></div>

<style>
#round{
position: absolute;
width: 200px;
height: 200px;
border-radius: 50%;
left: 400px;
top: 200px;
background-color: #e1e1e1;
}
</style>

<script src="jquery.js"></script>
<script src="jquery.easing.1.3.js"></script>
<script>
$(document).ready(function(){
    $("#round").click(function(){
        setInterval(function(){
            $("#round").animate(
                {height: 250,
                width: 150,
                top:150,
                left: 425},
                {duration: 300}
                ).
            animate(
                {height: 200,
                width: 200,
                top:200,
                left: 400},
                {duration: 300}
            );
        }, 0);
    });
});
</script>

但是当我将“ #round”更改为“ this”时。它不会工作。为什么?(实际上是可行的,但是当我将它们放入setInterval()时,它将无法工作)

$(document).ready(function(){
    $("#round").click(function(){
        setInterval(function(){
            $("#round").animate(
                {height: 250,
                width: 150,
                top:150,
                left: 425},
                {duration: 300}
                ).
            animate(
                {height: 200,
                width: 200,
                top:200,
                left: 400},
                {duration: 300}
            );
        }, 0);
    });
});

更改为“ this”,将无法使用。

$(document).ready(function(){
    $("#round").click(function(){
        setInterval(function(){
            $(this).animate(
                {height: 250,
                width: 150,
                top:150,
                left: 425},
                {duration: 300}
                ).
            animate(
                {height: 200,
                width: 200,
                top:200,
                left: 400},
                {duration: 300}
            );
        }, 0);
    });
});

问题答案:

this 是对调用当前函数的成员的引用…

那么您可以将其包装在jquery函数中$()以选择它,就像选择其他选择器一样。

因此setInterval调用匿名函数,这样它就不会被可引用成员调用,因此它默认为该window对象。

this上下文保存在变量中,然后像这样在内部使用它…

$(document).ready(function(){
    $("#round").click(function(){
        var clicked = this;   //<----store the click context outside setInterval
        setInterval(function(){
            $(clicked).animate(  //<----------use it here
                {height: 250,
                width: 150,
                top:150,
                left: 425},
                {duration: 300}
                ).
            animate(
                {height: 200,
                width: 200,
                top:200,
                left: 400},
                {duration: 300}
            );
        }, 0);
    });
});


 类似资料:
  • 问题内容: 8个月前关闭。 在jquery中,什么意思和何时使用? 问题答案: JavaScript中的代码非常特殊且功能强大。这可能意味着任何事情。 首先让我们看一下jQuery对jQuery的使用,然后再在JavaScript中更广泛地讨论它。 特别是在jQuery中 在用jQuery编写的代码中, 通常 指的是作为要调用的函数的主题的DOM元素(例如,在事件回调中)。 例如jQuery的事件

  • 问题内容: 我有以下示例: 在这段代码中,我可以理解Enum创建了一个Enum类型的Sizes。 我的问题是:EnumSet类型的对象吗?到底是什么意思 我真的很想更好地理解它。 问题答案: 对于任何变量,可以在其声明中找到其类型: 是的,(应该命名,因为它是一个集合)是type 。它也应该被泛化,因此被声明为 它的意思是那是type 。一个是一个包含一个特定的枚举类型的枚举例如,在比其他更有效的

  • 本文向大家介绍JavaScript中的this到底是什么(一),包括了JavaScript中的this到底是什么(一)的使用技巧和注意事项,需要的朋友参考一下 对于常年使用C++,C#,Java等这些面向对象语言的程序员来说,几乎天天都和this打交道。在这些语言里,this含义非常明确,就是指向当前的对象实例,我们用起来也是相当的放心。然而,到了JavaScript这个动态语言里,this的写法

  • 问题内容: 我遇到了这段代码,我不退出这一行来理解它的含义或它在做什么。 我知道是什么还是什么,但是什么是? 问题答案: 这是构造函数重载: 您可以通过缺少返回类型来判断此代码​​是构造函数,而不是方法。这与在构造函数的第一行中调用以初始化扩展类非常相似。您应该在构造函数的第一行中调用(或的任何其他重载),从而避免构造函数代码重复。 您也可以看看这篇文章:Java中的构造方法重载-最佳实践

  • 问题内容: 我想使用作为我的单元测试的基本目录(创建很多文件)。此属性指向当前工作目录是否正确(例如,由“ cd”命令设置)? 问题答案: 这java是运行JVM的目录。不必位于用户的主目录中。它可以在用户有权运行Java的任何地方。 因此,如果你cd进入,然后运行你的程序,将是。 另一个属性指向用户目录。如或或。

  • 问题内容: 我对Java非常陌生,只想确认是什么?它类似于Float还是Int?任何帮助,将不胜感激。我有时还会看到大写字母,有时看到的是小写字母。如果有人可以弄清楚这意味着什么,那就太好了! 问题答案: Double是包装器类, Double类将原始类型double的值包装在对象中。类型为Double的对象包含单个类型为double的字段。 此外,此类提供了几种将double转换为String和