jQueryrotate if else循环问题

时间:2013-08-05 10:18:32

标签: javascript jquery jquery-plugins

我正在尝试设置一个元素,单击时会旋转180度,然后再次单击时再返回。我使用的代码如下。显然不对,感觉我需要使用for循环。

$('#hodgepodge').click(function(){
    var i = 0;
    if (i < 1) {
        $('#hodgepodge').rotate(180);
        var i = 1;
    } else {
        $('#hodgepodge').rotate(0);
        var i = 0;
    }
    });

2 个答案:

答案 0 :(得分:1)

您可以使用jQuery的data()来跟踪状态,然后只需切换它:

$('#hodgepodge').on('click', function(){
    $(this).rotate( !$(this).data('state') ? 180 : 0 );
    $(this).data('state', !$(this).data('state'));
});

FIDDLE

答案 1 :(得分:0)

尝试在click事件之前初始化,如

var i = 0;
$('#hodgepodge').click(function(){
    if (i < 1) {
        $('#hodgepodge').rotate(180);
        i = 1;
    } else {
        $('#hodgepodge').rotate(0);
        i = 0;
    }
});