2012-06-02 3 views
0

Я пробовал тонну различных методов, чтобы заставить obj var в моем плагине добавлять классы вместо щелчка, но ничего не работает. Obj.click (function() { кажется, работать с более старыми версиями JQuery как 1.4.2, но не что-нибудь новее .. любые предложения будут высоко оцененыИзменить jQuery Plugin Hover to Click Функция

спасибо!

(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

Большой 'переключатель' в середине вашего кода кажется излишним. Почему не просто '$ (this) .addClass (анимация)'? (Я знаю, что это не отвечает на ваш вопрос, но более короткий, более простой код легче читать и отлаживать) – georgebrock

+0

только что задан вопрос: почему бы вам не использовать obj.addClass ('bounce'); вместо использования $ (this) .addClass ('bounce'); ?? – mfadel

+0

с помощью переключателя и разных случаев позволяет мне применять любую из 56 анимаций, например, анимацию: flash или анимацию: tada я не вижу, как заменить весь этот переключатель на $ (this) .addClass (анимация) позволит мне добавить несколько анимаций ..? – JamesBong

ответ

0

я хотел бы попробовать bind или on и направить вас по этой ссылке : What's the difference between `on` and `live` or `bind`?

и да, есть комментаторы:

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

эй спасибо! я смог уменьшить размер плагина, как вы показали мне, я действительно ценю это !!! я понятия не имел, что это можно сделать так просто, я думал, что мне нужно будет назначить индивидуальный случай для каждого класса анимации, я попытался использовать функцию щелчка, но не смог получить какое-либо другое предложение о методах, которые я мог бы попробовать? – JamesBong

+0

хорошо! теперь, наконец, получил его для работы с obj.bind («click», function() { только проблема теперь заключается в том, как заставить его удалить добавленный класс после нажатия, класс в настоящее время придерживается и не позволит мне анимировать с кликом снова, если использовать toggleClass, это работает, но я должен нажать его дважды, чтобы активировать анимацию снова после того, как она была добавлена ​​в первый раз – JamesBong

Смежные вопросы