webForumDet fria alternativet

Anropa funktion ger Uncaught ReferenceError: showWindows is not defined.

5 svar · 1 177 visningar · startad av evilaid

evilaidMedlem sedan apr. 2009433 inlägg
#1

Tror jag behöver lite grunder i javasript:

Jag har en html fil där jag inkluderar två javascript filer.

I den ena filen har jag gjort denna superenkla funktionen.

      function showWindows() {
     var windowValue = $('input[name="fonsterVal"]:checked').val();
        if(windowValue == "J") {
            $('#fonsterRad').show();
        }
        else if(windowValue == "N") {
            $('#fonsterRad').hide();
        }
    }

i den andra filen anropa jag funktionen genom detta:
$(showWindows)

Lägger jag anropet i samma js fil efter att funktionen är definierad så fungerar det.
Men att anropa från andra filen ger detta:
Uncaught ReferenceError: showWindows is not defined

Är det inte "legit" att göra anrop på detta sättet?

Tack på förhand:)

grennfoxMedlem sedan feb. 2010177 inlägg
#2

I vilken irdning inkluderar du filerna?
Den filen med själva funktionen i måste inkluderas först.
sen så brukar jag starta mina funktioner på fölande sätt
FunktionsNamn ()

evilaidMedlem sedan apr. 2009433 inlägg
#3

Hej,

Då ligger dom i rätt ordning för filen med funktionen ligger först och sen kommer nästa fil och det är från den som anropet till funktionen görs.
I båda de filer som inkkludera så ligger all kod inom
$(document).ready(function() {
}

Men det skall inte vara något problem att man använder det två gånger (en gång i varje include fil) ?

voigtann1Medlem sedan juni 20019 519 inlägg
#4

i den andra filen anropa jag funktionen genom detta:
$(showWindows)

Lägger jag anropet i samma js fil efter att funktionen är definierad så fungerar det.
Men att anropa från andra filen ger detta:
Uncaught ReferenceError: showWindows is not defined

Är det inte "legit" att göra anrop på detta sättet?

jo detta är helt OK att göra... men den är inte definierad när du anropar koden.

Antingen få du lägga filen före dom-ready koden så den har lästs in (eller helt enkelt placera den före i kodblock/fil) så att den är definierad när anropet körs. just nu är den inte det.

evilaidMedlem sedan apr. 2009433 inlägg
#5

Får inte detta till att fungera..
Första js filen som infogas ser ut så här

function showWindows() {

     var windowValue = $('input[name="fonsterVal"]:checked').val();
        if(windowValue == "J") {
            $('#fonsterRad').show();
        }
        else if(windowValue == "N") {
            $('#fonsterRad').hide();
        }
    }
	
	
$(document).ready(function() {
      $('.fonsterVal').click(function() {  
			showWindows()
//och massa annan kod
        }); 
});

Detta innebär att det första som händer är att funktionen definieras

Andra filen som infogas har detta:

   $(document).ready(function() {
    showWindows()
});

Så när funktionen anropas från andra filen fungerar det, men itne via min ".click" anrop.. Då ger det bara felet: undefined is not a function. Detta ges på raden som anropar funktionen showWindows() ??

tack för hjälpen

voigtann1Medlem sedan juni 20019 519 inlägg
#6

det är inte något fel på denna kod.

jag gissar på att det är "och en massa annan kod" som generera ditt fel, sätt en breakpoint på din JS kod i valfri webbläsare och deras javascript debug och gå igenom koden.

128 ms totalt · 3 externa anrop · v20260731065814-full.30151723
0 ms — hämta forumlista (cache)
0 ms — hämta statistik (cache)
124 ms — hämta tråd, inlägg och bilagor (db)