unbind / bind不工作

时间:2011-02-28 14:50:38

标签: jquery

$(document).ready(function(){
$("li::nth-child(1)").click(function () {
      $("li").unbind('click');
       $(".content").fadeIn('slow');
       if ($("#what_image").is(':visible')) {
        $("#what_image").fadeOut('slow', function() {
        $("#what_text").fadeIn('slow'), function() {
          $("li").bind('click');
          ...

unbind有效...所有“li”菜单元素都被禁用以进行单击。 当动画停止时,我想绑定所有“li”元素。 无济于事......因为我无法重新构造元素,所以必定是错误的......

3 个答案:

答案 0 :(得分:0)

$("li").bind('click');

该行没有告诉它在点击时该怎么做。您需要将其绑定到您希望它执行的功能。

假设你想要将它重新绑定到它之前所做的事情:

$(document).ready(function(){
   function FadeLi() {
      $("li").unbind('click');
      $(".content").fadeIn('slow');
      if ($("#what_image").is(':visible')) {
          $("#what_image").fadeOut('slow', function() {
              $("#what_text").fadeIn('slow'), function() {
                 $("li").bind('click', FadeLi); // Binding to the same function
              }
          }
      }
   }

   $("li::nth-child(1)").click(FadeLi);       
}

答案 1 :(得分:0)

这样的事情应该有效:

$(document).ready(function(){
  function clickHandler() {
    $("li").unbind('click');
    $(".content").fadeIn('slow');
    if ($("#what_image").is(':visible')) {
      $("#what_image").fadeOut('slow', function() {
      $("#what_text").fadeIn('slow'), function() {
        $("li").bind('click', clickHandler);
        ...
  }
  $("li::nth-child(1)").click(clickHandler);

但我觉得有一种更好的方法来完成你想要的东西,而不是绑定和解除事件的绑定。

答案 2 :(得分:0)

好的......感谢你的帮助我找到了它!

$(document).ready(function(){

 function FadeLi() {                                                                
   $("li").unbind('click');                                                         
        var index = $("li").index(this);                                            

         switch(index)                                                              
             {  case 0:                                                             
                    $("#what_image").fadeOut('slow', function() {                   
                    $("#what_text").fadeIn('slow', function() {                     
                    $("li").bind('click', FadeLi); // Binding to the same function  
                       });                                                          
                    });                                                             
                break                                                               
                case 1:                                                             
                     $("#when_image").fadeOut('slow', function() {                  
                     $("#when_text").fadeIn('slow', function() {                    
                     $("li").bind('click', FadeLi); // Binding to the same function 
                        });                                                         
                     });                                                            

                break      
                .
                .
                .