2012-02-19 91 views
0

这是我第一次尝试编写一个jQuery插件,这个插件应该淡出主体,切换类,然后让主体重新出现并让用户切换回来。不幸的是,在这一点上,它不能多次转换课程。如何解决它?为什么我的“插件”只执行一次?

(function($) { 

    $.fn.flashClass= function(classId, element){ 

     element="body"; //overriden for testing purpose 
      $(this).click(function() { 
       $(element).fadeOut("slow", function() { 
        $(element).toggleClass(classId); 
       }); 
       $(element).fadeIn("slow", function() { 
        $(element).scrollTop(height); 
       }); 
      }); 
    }; 
})(jQuery); 

编辑:

在这一天结束,原来,我已经贴了错误的片段与未定义的变量高度的scrollTop的回调。删除它并将.click切换为.on后,该功能就像魅力一样。不过,我仍然感兴趣为什么它只有一次。

+0

是什么让你觉得它第二次被称为什么? – Pointy 2012-02-19 15:57:11

+2

如果你用'body'覆盖它,你为什么得到元素参数? – gdoron 2012-02-19 16:01:27

+0

你在哪里换班? – gdoron 2012-02-19 16:02:49

回答

1

尝试直播()或(),像下面: “不能切换类不止一次”

$(this).on('click',function() {... 

而不是

$(this).click(function() {... 
+2

'live()'已弃用。使用'delegate()'或'on()'代替 – 2012-02-19 15:57:55

+0

@Pointy'$(this).click(function(){'...? – 2012-02-19 15:58:33

+0

@RoryMcCrossan'delegate'也被弃用,afaik。 – Johan 2012-02-19 15:59:19