2012-06-02 75 views
0

我已經嘗試了大量不同的方法來獲取我的插件中的obj var添加類,而不是鼠標懸停,但似乎沒有工作.. obj.click(function(){似乎與像1.4.2,但沒有任何更新的舊版本的jQuery的工作..任何建議將高度讚賞更改jQuery插件懸停點擊功能

謝謝!

(function($) { 
$.fn.vivify = function(options) { 

    var defaults = { 
     animation: 'bounce', 
    }; 

    var options = $.extend(defaults, options); 

    return this.each(function() { 
     var o = options; 

     var obj = $(this); 

     var animation = o.animation; 

     obj.hover(function() { 
     obj.addClass(o.animation); 
     obj.addClass('vivify'); 
     }, 

     function() { 
      obj.removeClass(o.animation); 
     }); 
    }) 
} 
})(jQuery); 
+2

代碼中間的大'switch'似乎是多餘的。爲什麼不只是'$(this).addClass(動畫)'? (我知道這並不回答你的問題,但更短,更簡單的代碼更容易閱讀和調試) – georgebrock

+0

只是一個問題: 爲什麼你不使用 obj.addClass('bounce');而不是使用$(this).addClass('bounce'); ?? – mfadel

+0

使用開關和不同的情況下,我可以應用56動畫中的任何一個,如動畫:flash或動畫:tada我不知道如何用$(this).addClass(動畫)替換整個開關將允許我添加多個動畫..? – JamesBong

回答

0

我會嘗試bindon並引導您到這個鏈接:What's the difference between `on` and `live` or `bind`?

,是的,評論者是正確的:

obj.on('click', [selector,] function(){ 
    obj.addClass(o.animation); 
}); 
+0

嘿謝謝!我能夠減少插件的大小,因爲你給我看,我真的很感激!我不知道它可以這樣簡單的方式完成,我想我將不得不爲每個動畫類分配一個個案,我嘗試了點擊功能,但沒有成功的方法,我可以嘗試任何其他建議? – JamesBong

+0

好吧!現在終於得到它與obj.bind(「點擊」,功能()現在唯一的問題是如何強制它刪除添加的類後單擊發生,該類目前堅持,並不會允許我再次點擊動畫,如果使用toggleClass,它可以工作,但我必須點擊它兩次以在第一次添加動畫後再次激活動畫 – JamesBong