webForumDet fria alternativet
Logga in / Bli medlem

Fel element triggar javascript event

JavaScript

4 svar · 372 visningar · startad av mangan

Medlem sedan feb. 2003216 inlägg
Frågan#1

Hej!

Jag har fått ett litet problem, givetvis ;)

Använder följande kod för att sätta event handlers på mina fält

var customerFields= ['customer_number','customer_name','customer_contact','customer_email','customer_reference','customer_tracking'];

function initPage(){
    for(i=0;i<customerFields.length;i++){
        document.getElementById(customerFields[i]).onclick = editCustomer;
        document.getElementById(customerFields[i]).onfocus = editCustomer;
    }
}

Problemet uppstår sedan när jag triggar ett event genom att klicka på tex . elementet 'customer_number'. Då säger det event som inträffar att det är 'customer_tracking' som är källan till eventet. Detta kan jag inte alls förstå. Jag trodde att man kunde ha samma event handler på flera element, kan man inte det?

En sak till, om jag tar bort 'customer_tracking' från min elementarray så säger mitt event att det är 'customer_reference' som triggar mitt event osv. för varje jag plockar bort.

Medlem sedan juni 20031 837 inlägg
#2

Vad gör editCustomer?
Tydligen är det i den funktikonen du får ditt fel.

Medlem sedan feb. 2003216 inlägg
#3

Hittade felet!
I min metod, editCustomer, så sparade jag det triggande elementet i variabeln 'elem'. Sen anropade jag en metod som ändrar klass på ett element och den använde sig också av en variabel som hette 'elem'. På så sätt så ändrades mitt orginalelement till det som användes i metoden jag anropade. Kan inte riktigt hur javascript hanterar scoop men nu förutsätter jag att alla variabler ligger i samma globala scoop vilket är ganska illa!

Medlem sedan juni 20031 837 inlägg
#4

deklarerar du dina variabler innan du använder dem?

var test;
var test2;
Medlem sedan feb. 2003216 inlägg
#5

Nej, såg att jag inte hade gjort det. Läste att man måste deklarera variablerna med var för att få dom att vara lokala. Alltid lär man sig något! :)

262 ms totalt · 4 externa anrop · v20260731065814-full.14655e19
132 ms — deklarationer (db)
0 ms — hämta statistik (cache)
127 ms — hämta tråd, inlägg och bilagor (db)
123 ms — ändringar (db)