jQuery" $( ... ).l'effet n'est pas une fonction"

j'ai déjà cherché dans le forum mais je ne trouve aucun moyen de résoudre le problème que j'ai avec la fonction "effect" dans jQuery.

- je obtenir exactement l'erreur TypeError: $(...).effect is not a function dans le code :

$('div.step').removeClass('active');
$("div.step").effect('slide', {direction: 'right', mode: 'hide'}, 500);
$('#step' + step + '').addClass('active');
$('#step' + step + '').effect('slide', {direction: 'right', mode: 'show'}, 500);

j'ai inclus à la fois jQuery et jQuery UI comme ceci <head></head>:

<script src="http://code.jquery.com/jquery-1.10.2.js"></script>
<script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>

Mais en vain, avez-vous une idée? Je vous remercie

10
demandé sur mentinet 2014-02-24 18:48:37

4 réponses

vous devez mettre votre script personnalisé après vos déclarations jQuery et jQuery UI, et l'envelopper dans un document ready() fonction:

<body>
    ...
    <script src="http://code.jquery.com/jquery-1.10.2.js"></script>
    <script src="http://code.jquery.com/ui/1.10.4/jquery-ui.js"></script>
    <script type="text/javascript">
        $(document).ready(function() {
            ...
        });
    </script>
</body>
7
répondu James Donnelly 2014-02-24 14:52:45

Je ne sais pas si le problème a été résolu mais j'ai trouvé un moyen de répliquer la fonction shake avec la fonction d'animation et cela fonctionne comme un charme:

function shake() {
        var div = document.getElementById('yourElementID');
        var interval = 100;
        var distance = 10;
        var times = 4;

        $(div).css('position', 'relative');

        for (var iter = 0; iter < (times + 1) ; iter++) {
            $(div).animate({
                left: ((iter % 2 == 0 ? distance : distance * -1))
            }, interval);
        }                                                                                                          
        $(div).animate({ left: 0 }, interval);
    }

Cette solution appartient à thisSite, tous les crédits. J'espère que ce sera utile à quelqu'un dans le futur, dans l'affirmative, veuillez le marquer comme solution, salutations.

3
répondu JCO9 2016-04-06 09:06:19

Essayez d'utiliser

$(document).ready(function () {
    $('div.step').removeClass('active');
    $("div.step").effect('slide', {direction: 'right', mode: 'hide'}, 500);
    $('#step' + step + '').addClass('active');
    $('#step' + step + '').effect('slide', {direction: 'right', mode: 'show'}, 500);
}
0
répondu Sven van de Scheur 2014-02-24 14:57:40

pour moi, il s'est avéré que mon projet utilisait une version" Custom download " de Jquery-UI qui avait été définie pour exclure le effects plugin. Remplacer ma version de jQuery UI par une version complète a corrigé mon problème.

0
répondu DelightedD0D 2017-03-23 06:04:44