dedlfix: globale Variable in jquery Funktion

Beitrag lesen

Tach!

function allesandere(translate){        //hier fängt mein alter code an der funktioniert und den will ich benutzen        jQuery(function($) {

// alles was hier steht ist mein bestehendes script und benötigt die translate variable         }); }

Nur geht es so nicht...

Das glaube ich dir. Du handelst dir wieder ein Zeitproblem ein, weil du jQuery anscheinend nicht verstanden hast. Der Aufruf jQuery(function() {...}) veranlasst bei jQuery, dass die übergebene Funktion in die Abarbeitungsschlange beim Auftreten des DOM-Ready-Events gehängt wird. Das allerdings kam schon längst und hat deinen anderen Code ("Beginn von allem") ausgeführt und dann den Ajax-Call gestartet. Der kam irgendwann zurück und ruft die Funktion auf, in der dem DOM-Ready-Event ein Handler angehängt wird. Der niemals mehr aufgerufen wird, weil DOM-Ready schon längst durch ist. Du solltest dich nochmal mit den Grundlagen von jQuery beschäftigen und wie man in Javascript Kapslung betreibt.

jQuery(function($) {...}); ist dasselbe wie wie $( document ).ready(function() {...}); Wenn es dir lediglich darum geht, jQuery nach $ (innerhalb des Scopes deiner Funktion allesandere) zu übersetzen, dann mach eine Variablenzuweisung. Aber du hast ja offensichtlich das $ schon im globalen Scope mit der Bedeutung eines Aliases auf jQuery. Also wäre es ausreichend das so zu tun:

function allesandere(translate){        // alles was hier steht ist mein bestehendes script und benötigt die translate variable }

Und wenn du nun die Variable translate in den Scope als Parameter reinreichst, brauchst du auch keine globale Variable mehr. Die wird ja sowieso überschrieben.

dedlfix.