2012-02-19 158 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

相關問題