1

我想在第一次单击时向右滑动 div,当再次单击时,我希望它返回到原始位置

我有以下内容,但 div 没有移动,并且 console.log 显示 clicked-2 即使在第一次点击时也是如此。

$('.note-title').click(function(){
        console.log("clicked-1");
        $(this).animate({'margin-left':'200px'},200);
    },function(){
        console.log("clicked-2");
        $(this).animate({'margin-left':'0px'},200);
    }); 
4

2 回答 2

4

简单地使用布尔标志怎么样?

var clickOne = true;
$('.note-title').click(function(){
  if (clickOne){
    $(this).animate({'margin-left':'200px'},200);
  }else{
    $(this).animate({'margin-left':'0px'},200);
  }
  clickOne = !clickOne;
}

每次单击都会切换标志的值并执行条件表达式的不同部分。

于 2012-08-30T20:34:52.810 回答
1

注意此方法已折旧。您应该使用 Lix 的解决方案。


利用.toggle

$('.note-title').toggle(function(){
    console.log("clicked-1");
    $(this).animate({'margin-left':'200px'},200);
},function(){
    console.log("clicked-2");
    $(this).animate({'margin-left':'0px'},200);
}); 

使用.click,所有传入的回调将在每次点击时触发,一个接一个。

于 2012-08-30T20:33:53.587 回答