Jquery:新的FadeToggle,我可以在切换的第二个动作上运行代码吗?

时间:2010-11-19 04:32:58

标签: jquery toggle

所以当我点击#mybutton时,它会在.mybox中消失。是否可以在下面使用我的代码,并在第一次切换之前添加.animate({'width':'toggle'})或添加.delay(2000)之类的内容,然后在第二次激活切换时不激活延迟? 我该怎么办?最简单/最简单的方法?

这是我的代码:

$('#mybutton').click(function(){
  $('.mybox').fadeToggle(500)
})

3 个答案:

答案 0 :(得分:1)

以下是我使用setTimeout()

的方法
var firstClick = true; 

$('#mybutton').click(function(){
  if (firstClick) {
      setTimeout(function() {
          $('.mybox').fadeToggle(500);
          firstClick = false; // #mybutton has been clicked once, we no longer want to wait before toggling on subsequent clicks of #mybutton 
      });
  } else {
      $('.mybox').fadeToggle(500);
  }      
}) 

答案 1 :(得分:1)

您只需使用toggle()代替fadeToggle()即可获得更多控制权。

$('#mybutton').click(function(){
var firstTime = true;
$('.mybox').toggle(
    function () {
        $(this).fadeIn(500);
    },
    function () {
        if (firstTime)
        { $(this).delay(2000); }
        $(this).animate({'width':'toggle'}).fadeOut(500);
    }
);
})

答案 2 :(得分:1)

使用one()绑定一次性事件处理程序,然后绑定“真正的”永久事件处理程序将在这里工作:

var box = $('#box');

$('a').one('click', function(){
    box.delay(2000).fadeToggle();
    $(this).click(function(){
        box.fadeToggle();
        return false;
    });
    return false;
});

请在此处查看此简单演示:http://jsfiddle.net/yijiang/2m3bb/