2013-04-11 2 views
7

Ich versuche, ein Skript in einem Joomla-Modul einzufügen. Das Skript ist ein prozentualer Loader in JS. Ich hatte einige Probleme mit einem anderen js, aber ich habe es schließlich geschafft, sie zu lösen.

Der Fehler ich erhalte ist:

Uncaught TypeError: Property '$' of object [object Object] is not a function (anonymous function)

Ich versuche, die Percentage Loader jQuery plugin

Und der js-Code ist zu importieren:

$(function() { 
    var $topLoader = $("#dttopLoader").percentageLoader({width: 256, height: 256, controllable : true, progress : 0.5, onProgressUpdate : function(val) { 
     $topLoader.setValue(Math.round(val * 100.0)); 
    }}); 

    var topLoaderRunning = false; 
    $("#dtanimateButton").click(function() { 
    if (topLoaderRunning) { 
     return; 
    } 
    topLoaderRunning = true; 
    $topLoader.setProgress(0); 
    $topLoader.setValue('0kb'); 
    var kb = 0; 
    var totalKb = 999; 

    var animateFunc = function() { 
     kb += 17; 
     $topLoader.setProgress(kb/totalKb); 
     $topLoader.setValue(kb.toString() + 'kb'); 

     if (kb < totalKb) { 
     setTimeout(animateFunc, 25); 
     } else { 
     topLoaderRunning = false; 
     } 
    } 

    setTimeout(animateFunc, 25); 

    }); 
});  

Ich habe versucht, die erste Zeile zu ändern von "$ (function() ..." zu "jquery (function() ...", da ich viele Themen auf stackoverflow gelesen habe, aber immer noch nicht beheben kann.

+0

Haben Sie versucht, 'jQuery (function() ...', case-sensitive –

+0

Haben Sie jQuery in Ihrer Website enthalten ? – Nope

+0

Ich versuchte Groß-und Kleinschreibung, aber immer noch den gleichen Fehler. Ja jQuery ist bereits enthalten. – manosim

Antwort

4

Es scheint ein ähnliches Problem in this SO post here aber in WordPress zu geben.

Sie sagten, Sie verwenden Joomla. Joomla enthält möglicherweise auch die jQuery-Bibliothek, die im Modus "Kein Konflikt" geladen wurde, und möglicherweise kann dieselbe Lösung angewendet werden.

Versuchen Sie ersetzen diese:

$(function() { 

Mit dieser:

jQuery(document).ready(function ($) { 
+1

Oder nur 'jQuery (Funktion ($) {' –

+0

@ZacharyKniebel Jetzt funktioniert es !! Gerade hinzugefügt die (jQuery) am Ende und jetzt zeigt es sich! Sorry, aber ich bin neu hier und ich kann nicht finden Zachary's Antwort Francois, der auch funktioniert! Danke! – manosim

+0

Nein, das zweite Argument wird einfach ignoriert.Es sollte keinen Unterschied machen. –