2012-08-14 9 views
14

ich in jQuery Transit geladen haben, und ich sicher, dass ich es tat nach jQuery Laden, aber ich habe immer noch diese Fehlermeldung:jQuery Transit: Object keine hat keine Methode ‚setFromString‘

Ich habe auf der Ressourcen-Panel sah in Chrome und jQuery Transit wird nach jQuery geladen. Es wurde auch korrekt geladen und zeigt sich ohne Probleme.

Ich habe auch in der Konsole getestet, die Beispiele auf der Website testen. Sie alle geben denselben Fehler zurück.

hier ist mein Code:

$("#current-employers a.industry-company-link").click(function (e) 
    { 
     e.preventDefault(); 
     var url = $(this).attr("href"); 
     var company_container = $("#current-company-profile"); 
     company_container.load(url); 
     company_container.transition({ 
      y: ($(this).offset().top - company_container.offset().top) 
     }); 
     console.log("container offset: " + company_container.offset().top + "\nURL offset: " + $(this).offset().top); 
    }); 

Und die Skripte ich bringen:

<script src="http://cdnjs.cloudflare.com/ajax/libs/jquery/1.8.0/jquery-1.8.0.min.js"></script> 

     <script src="http://cdnjs.cloudflare.com/ajax/libs/jquery.transit/0.1.3/jquery.transit.min.js"></script> 

Vielen Dank für jede Hilfe.

Antwort

9

Nun, stellt sich heraus, es ist jQuery in diesem Fall schuld. jQuery 1.8 war der Schuldige hier. Laden in 1.7.2 behob das Problem. Ich werde diesen Fehler dem Transit- und jQuery-Team melden.

+0

Dank an einem der Hunderte von Kompressoren minify kann - das gleiche Problem. – potench

+0

Siehe GitHub Problem und PR: https://github.com/rstacruz/jquery.transit/issues/72 https://github.com/rstacruz/jquery.transit/pull/77 – iX3

9

UPDATE (13. April 2013): Ich las den Quellcode für Transit und es scheint, dass Herr Cruz den Code aktualisiert hat, um effektiv mit jQuery 1.8+ zu arbeiten. Wenn jemand es getestet hat, könnten sie bitte bestätigen, dass es funktioniert. Vielen Dank.


Dies hängt mit dem css-Hook zusammen, den jQuery und Transit verwenden. In Version 1.7 hatte jQuery keinen css-Hook für Transformationen. So hat Transit einen Haken für uns implementiert. JQuery hat sich jedoch selbst aktualisiert und bietet nun css-Hooks für Transformationen an. Diese stehen jetzt miteinander in Konflikt. Es ist jedoch kein Fehler, da jQuery einwandfrei funktioniert und als solches nicht an jQuery gemeldet werden muss.

Sie können eine 1.7-Version von jQuery verwenden und warten, bis Transit aktualisiert wurde, oder den Transit-Code bearbeiten, der nur etwa eine Minute dauert.

Um zu bearbeiten, erhalten Sie die Entwicklungsversion von Transit von der offiziellen Website. Dann gehe zu Zeile 603, wo $ .cssHooks [prop] steht. Entfernen Sie die Methode und setzen diese Methode dort statt:

$.cssHooks[prop] = { 
    get: function(elem) { 
    var t = $(elem).css('transform'); 

    if (!t || t === "none") { 
     t = new Transform(); 
    } 
    return t.get(prop); 
    }, 

    set: function(elem, value) { 
    var t = $(elem).css('transform'); 

    if (!t || t === "none") { 
     t = new Transform(); 
    } 

    t.setFromString(prop, value); 

    $(elem).css({ transform: t }); 
    } 
}; 

Sie den Code zur Verfügung, wie http://jscompress.com/

+0

Dies ist eine erstaunlich gute Antwort. Vielen Dank! – Nate

+0

Dies half, ein Problem zu beheben, das ich mit dem gleichen Fehler wie das OP hatte. Danke, Jonathan Tonge. Gute Antwort. – motoxer4533

+0

Ihr Willkommen Ich bin glücklich zu helfen! –

Verwandte Themen