Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/80.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Jquery 更改元素';使用CSS属性创建背景_Jquery_Css_Toggle_Background Position - Fatal编程技术网

Jquery 更改元素';使用CSS属性创建背景

Jquery 更改元素';使用CSS属性创建背景,jquery,css,toggle,background-position,Jquery,Css,Toggle,Background Position,我有一个有背景的div,我想在单击时更改背景的位置 这是我的jQuery代码片段: $('#sprite').click(function () { $(this).css('backgroundPosition', '-40px'); }); 虽然这是正常工作,我想返回到原来的位置与'秒'点击,重置所有 嗯,这就是所谓的“回调”对吗 我试过这样做,但没有成功: $('#sprite').click(function () { $(this).css('backgroundPo

我有一个有背景的div,我想在单击时更改背景的位置

这是我的jQuery代码片段:

$('#sprite').click(function () {
    $(this).css('backgroundPosition', '-40px');
});
虽然这是正常工作,我想返回到原来的位置与'秒'点击,重置所有

嗯,这就是所谓的“回调”对吗

我试过这样做,但没有成功:

$('#sprite').click(function () {
    $(this).css('backgroundPosition', '-40px');
},function () {
    $(this).css('backgroundPosition', '40px');
});

你应该考虑使用一个“切换”函数。它将允许您在两个不同的CSS类之间切换。。。查看本教程

与直接设置CSS属性不同的另一个选择是为您的背景创建一个CSS类,并简单地切换该类

CSS
在课堂上这样做。这要容易得多

<style type="text/css">
    #spite.moved {
        background-position: -40px;
    }
</style>

<script type="text/javascript">
    $(function () {
        $("#spite").click(function () {
            $(this).toggleClass("moved");
        });
    });
</script>

#我感动了{
背景位置:-40px;
}
$(函数(){
$(“#”)。单击(函数(){
$(此).toggleClass(“移动”);
});
});

您误解了回调的概念。编程中的回调函数是在执行代码后立即调用的函数

就你而言,你说的是:

单击后,将我的背景位置设置为-40px。完成后,将其设置为40px(立即撤消函数刚刚执行的操作)


在这种情况下,您不需要使用回调函数。您需要设置一个切换,这样当用户单击您的元素时,一个函数将运行……然后,当他们下次单击该元素时,第二个函数将运行。

是的,很快!顺便说一句,您可以自己使用切换,无需单击:
<style type="text/css">
    .spritebg { background-position: -40px; }
</style>
$("#spite").click(function() {
   $(this).toggleClass("spritebg");
});
<style type="text/css">
    #spite.moved {
        background-position: -40px;
    }
</style>

<script type="text/javascript">
    $(function () {
        $("#spite").click(function () {
            $(this).toggleClass("moved");
        });
    });
</script>