Jump to content
php.lv forumi

Recommended Posts

Posted

Bāc, triviāla lieta, pat kauns, ka nezinu, bet nav sanācis veidot uz JavaScript!

 

Tātad, kā lai dabū sekojoši, līdzīgi kā php ir:

$foo = "anna";

${$foo} = "lagzdiņa";

// sanāk, ka izveidojas variablis $anna = "lagzdiņa", ja nemaldos....

 

Kā to pašu dabūt uz JavaScript?

  • Replies 30
  • Created
  • Last Reply

Top Posters In This Topic

Popular Days

Top Posters In This Topic

Posted

Tik tāl es pats tiku... Ir vēl viens paņēmiens arī...

 

Bet man tagad interesē sekojoši. Pieņemsim, ka no piemēra, "anna" ir "display".

 

Tagad kā ielikt to iekš:

 

document.getElementById('elem1').style.[te ir tā anna jeb display] = 'none';

 

?

Posted

Atklāju, paldies visiem! :)

 

var property = 'display';

var value = 'none';

 

window['prop'] = property;

document.getElementById(id).style[prop] = value;

Posted

Beigās man sanāca itin noderīga JavaScript funkcija darbībā ar elementa style propertijiem - notestēta jau uz 5 populārākajiem pārlūkiem (FF3, IE6, IE7, Opera9.5, Safari3.1.2), varbūt kādam arī noder:

 

function changeStyle(id,property,value) {
 window['prop'] = property;
 if (document.getElementById(id)) {
if (document.getElementById(id).style[prop]==value) {
  document.getElementById(id).style[prop]='';
} else {
  document.getElementById(id).style[prop]=value;
}
 }
 window['prop'] = undefined;
}

Posted

Hm, priekš kam tas window['prop'] ?

 

Un varbūt būtu vērts document.getElementById(id) izpildīt tikai vienu reizi.

 

Un nosaukumu drīzāk toggle nevis change. ;)

Posted

window['prop'] , lai nav jāizpilda eval().

 

Lab, vari likt arī window['tempProp'] - izskatās precīzāk tomēr...

 

nu jā, var uzrakstīt funkcijas sākumā:

 

var elem = document.getElementById(id);

 

un turpmāk lietot tikai mainīgo elem

Posted

Nesapratu par eval. Šitā jau tak arī darbojas:

 

function toggleStyle(id, property, value) {
 var el = document.getElementById(id);
 if (el) {
if (el.style[property]==value) {
  el.style[property]='';
} else {
  el.style[property]=value;
}
 }
}

Posted

Tev taisnība, jopcik, paldies par optimizāciju! Jā, tagad funkcija ir pieslīpēta.

 

Īsti tikai neizprotu vārda toggle pielietojumu?

Posted

imho toggle nozīmē ko tādu kas mainās - ieslēdzas, izslēdzas, piemēram. Tieši to tava funkcija dara - vai nu uzstāda to value, vai arī nomet nost.

change nozīmētu ko tādu, kas vienmēr uzstādītu to vērtību - tb el.style[property] = value; bez ierunām.

Posted

Vispār vēl problēma varētu būt, ka elementam jau ir attiecīgais stils, kas ir uzstādīts stila failā. Tad JS neredz to vērtību. JS redz tikai tās vērtības, kas ir iekš inline style taga, un ko pats ir uzstādījis (JS uzstāda stilu caur inline, tāpēc pats redz).

Posted (edited)
function toggleStyle(id, property, value) {
 if(el=document.getElementById(id)) {
el.style[property]=(el.style[property]==value?'':value);
 }
}

Edited by codez

×
×
  • Create New...