2011-08-11 87 views
0

此脚本适用于fadeIn onClick然后fadeOut onClick的文本框。这是第一次。但是,第二次执行时,$ .noop()变量不起作用。 Here's我刚开始工作的网站的链接。如果你点击“音乐”,“生物”或“链接”标签两次,你会看到我在说什么。这里的jQuery:

$(document).ready(function() { 
$('#music-box').hide(); 
    $('#links-top-music').click(function() { 
     $('#music-box').fadeIn(1000); 
     $.noop(); 
       $('#links-top-music').click(function() { 
        $('#music-box').fadeOut(750); 
       }); 
      }); 
     }); 
+1

'$ .noop()'没有做任何事情(根据定义)。无论你想要做什么,你做错了。 – tylerl

+1

[jQuery上的noop函数](http://api.jquery.com/jQuery.noop/)什么都不做 - 它是一个NO-OPeration函数。它不是直接调用,而是传递给未使用的回调函数。 – OverZealous

+0

我试图让框保持淡入,直到点击。我应该使用什么变量?它对第一个fadeIn/fadeOut工作正常。但是,之后暂停效果否是活动的。 – Graham

回答

1

$(document).ready(function() { 
    var buttonStatus = false; 
    $('#music-box').hide(); 
    $('#links-top-music').click(function() { 
     if(buttonStatus) { 
      $('#music-box').fadeOut(750); 
     } else { 
      $('#music-box').fadeIn(1000); 
     } 
     buttonStatus = !buttonStatus; 
    }); 
}); 

这将有形和无形之间切换。

2

试试这个。

$(document).ready(function() { 
    $('#music-box').hide(); 
    $('#links-top-music').click(function(evt) { 
     if ($('#music-box:visible').length) { 
      $('#music-box').fadeOut(750); 
     } 
     else { 
      $('#music-box').fadeIn(1000); 
     } 
     evt.preventDefault(); 
    }); 
}); 

演示在这里:根据您的更新评论http://jsfiddle.net/naveen/pfT5E/

+1

我更喜欢你的。我会离开我的后代。 – OverZealous

+1

也很棒。谢谢 – Graham

+0

高兴地帮助... – naveen

相关问题