我的块中有3个按钮。当显示块时,用户只能看到2个按钮,如果他点击其中的1个按钮,他点击的按钮就会消失,并且会出现3d按钮。但是为了防止用户在他按下一个按钮并且动画正在进行之后按下另一个按钮,我取消绑定点击这些按钮并绑定回fadeIn('slow',function(){ ... }
内部。按钮事件处理程序的完整代码:
$("#tab-1").click(function tab1() {
$('#tab-2,#tab-3').unbind('click');
$(container_selector).fadeOut('slow', function () {
$('#home_button_content_1').fadeIn('slow');
$('#tab-1').fadeOut('slow', function (){
$('#tab-2,#tab-3').fadeIn('slow',function(){
$('#tab-2').bind('click', tab2);
$('#tab-3').bind('click', tab3);
});
});
});
});
$("#tab-2").click(function tab2() {
$('#tab-1,#tab-3').unbind('click');
$(container_selector).fadeOut('slow', function () {
$('#home_button_content_2').fadeIn('slow');
$('#tab-2').fadeOut('slow', function (){
$('#tab-1,#tab-3').fadeIn('slow',function(){
$('#tab-1').bind('click', tab1);
$('#tab-3').bind('click', tab3);
});
});
});
});
由于某种原因,绑定不起作用,动画完成后我无法再次单击按钮。我有几个想法,但我不确定。也许我不能给click()内部的函数命名,或者那些名称不能从其他函数中访问,但很可能我使用Google Chrom调试器发现它在fadeIn中没有内部函数,当我尝试使用boolean标志时绑定/取消绑定。