2014-02-24 14 views
8

Ich suchte bereits im Forum, aber ich kann keine Möglichkeit finden, das Problem zu beheben, das ich mit der "Effekt" -Funktion in jQuery habe.

ich genau den Fehler TypeError: $(...).effect is not a function im 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); 

ich so beide jQuery und jQuery UI enthalten in <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> 

Aber vergeblich, Sie haben keine Ahnung? Danke

+1

Können Sie dies in [jsfiddle] (http://jsfiddle.net/) reproduzieren? – MadSkunk

+0

Hast du noch andere Plugins? – Spokey

+0

Dies ist die jsfiddle: http://jsfiddle.net/gYP9m/ Außer einem Datepicker ausgelöst durch einige $(). Fdatepicker() ... 'in der gleichen' document.ready' Ich habe keine andere Plugin enthalten. Danke – mentinet

Antwort

7

Sie benötigen benutzerdefinierten Skript nach dem jQuery und jQuery UI Erklärungen zu setzen, und wickeln Sie es in einem Dokument ready() Funktion:

<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> 
+0

Das ist, was ich tue, überprüfen Sie das Jfiddle oben, um zu sehen, was ich kodierte. Danke – mentinet

+0

@mentinet Sie haben jQuery UI in Ihrem JSFiddle Beispiel nicht eingeschlossen. Es funktioniert gut mit: http://jsfiddle.net/JamesD/gYP9m/1. –

+0

Ok ich kann es sehen. Aber der Code ist genau wie meiner und ich schließe die jQuery UI ein ... obwohl es auf meinem Rechner nicht funktioniert. Wie haben Sie die jQuery-Benutzeroberfläche in jsfiddle integriert? – mentinet

0

Try

$(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); 
} 
2

ich nicht verwenden, tun wissen, ob das Problem gelöst wurde, aber ich fand eine Möglichkeit, die Shake-Funktion mit der Animationsfunktion zu replizieren und es funktioniert wie ein 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); 
 
    }

Diese Lösung gehört zu thisSite, alle Kredite zu ihnen. Ich hoffe, dass dies für jemanden in der Zukunft nützlich sein wird, wenn ja, bitte markieren Sie es als Lösung, Grüße.

0

Für mich stellte sich heraus, dass mein Projekt eine "Benutzerdefinierte Download" -Version von Jquery-UI verwendet, die so eingestellt wurde, dass das effects-Plugin ausgeschlossen wurde. Ersetzen meiner Version von Jquery UI mit einer Vollversion behoben mein Problem.