如何在jquery中“循环”回某个函数

时间:2012-12-12 06:54:44

标签: jquery function loops click

我正在尝试了解如何运行功能,然后运行第二功能 ...然后返回原始功能。 (循环?)

正如你可以在我的小提琴中看到的那样:......我正试图让那个家伙在上点击再次点击他走回去原来的立场。 第三次点击时,我希望他继续模式 ....(例如,右,左,右,左......)

这是我正在研究的点击游戏(学习jquery / javascript的目标[动机])。

感谢您对此的帮助和耐心。对不起n00b代码...

$(document).ready(function() {
    $(".img").one("click", function() {
        $(".img").attr('src', "http://www.kolbaba.com/uploads/jsfiddle/tempImgs/walking.gif");
        $(".img").animate({
            "left": "+=300px"
        }, 1000, function() {
            $(".img").attr('src', "http://www.kolbaba.com/uploads/jsfiddle/tempImgs/standing.gif");
            $(".img").click(function() {
                $(".img").attr('src', "http://www.kolbaba.com/uploads/jsfiddle/tempImgs/walkingLeft.gif");
                $(".img").animate({
                    "left": "-=300px"
                }, 1000, function() {
                    $(".img").attr('src', "http://www.kolbaba.com/uploads/jsfiddle/tempImgs/standing.gif");
                    event.preventDefault();
                });
            });
        });
    });
});

2 个答案:

答案 0 :(得分:3)

使用.toggle()

所以你的代码看起来像这样,

$(".img").toggle(function(){

    //Code to go right

}, function(){

    //Code to go left

});

了解.toggle()

答案 1 :(得分:1)

Toggle很好,也很有效我做了一个简单的demo

但是我已经为那些不想使用切换的人找到了另一种解决方案。我知道这对于使用toogle有一段时间了,但我想在这里分享它。

$(document).ready(function(){
var count=1
    $(".img").click("click", function(){

    count=count+1;
if(count%2==0)
{

$(".img").attr('src',"http://www.kolbaba.com/uploads/jsfiddle/tempImgs/walking.gif");
    $(".img").animate({"left": "+=300px"}, 1000, function() {



        $(".img").attr('src',"http://www.kolbaba.com/uploads/jsfiddle/tempImgs/standing.gif");
    });
}
else
{

$(".img").attr('src',"http://www.kolbaba.com/uploads/jsfiddle/tempImgs/walkingLeft.gif");
              $(".img").animate({"left": "-=300px"}, 1000, function() {
            $(".img").attr('src',"http://www.kolbaba.com/uploads/jsfiddle/tempImgs/standing.gif");
              });
}


    });

});