2010-03-06 113 views
0

不知道我在做什么毛病.live()简单的jQuery的问题(​​)

$(function(){ 
     var wrapper = $('#trailer_wrapper'); 
     var button = $('h2 a'); 

     button.click(function() { 
      wrapper.fadeIn(2000); 
      button.addClass('selected'); 
      button.text('close ×'); 
      return false; 
     }); 

     $('h2 a.selected').live('click', function() { 
      wrapper.fadeOut(2000); 
      $(this).removeClass('selected'); 
      button.text('Watch Trailer »'); 
      return false; 
     }); 
    }); 
+1

,我也不清楚,特别是因为你没有说是什么问题! ... 等一下;也许我看到了... – Pointy 2010-03-06 22:43:33

回答

5

嗯,你的“点击”处理器(“直接”一节)仍在运行,它会在“实时”处理程序之前运行。

尽量只具有click处理程序:

button.click(function() { 
    if ($(this).is('.selected')) { 
    wrapper.fadeOut(2000); 
    $(this).removeClass('selected'); 
    button.text('Watch Trailer »'); 
    } 
    else { 
    wrapper.fadeIn(2000); 
    button.addClass('selected'); 
    button.text('close ×'); 
    } 
    return false; 
}); 
+0

正确!,但我今天不满意,不敢相信我完全瞥了一眼,很好。 – 2010-03-06 22:46:10

+0

是的,我完全没有想到这个。谢谢你清理那个。 – michaelespinosa 2010-03-07 04:38:05