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