problem with JS

10 отговора 221 прегледа
#1

problem with JS

Имам малък проблем с една функция. Ето кода:


function show(lal)
{

if ( document.getElementById(lal).style.display == "none") { document.getElementById(lal).style.display = "block"; }
else { document.getElementById(lal).style.display = "none"; }

}


тук може да се види за какво говоря.

Това нещо сработва чак след второто кликане на активният елемент. първият път нищо не става :(( защо така се получава, къде бъркам

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на Borg #2

Re: problem with JS

mi prosto predpolagam che ochakvash default stoinostta na display na vaprosnia element da e "none" i da pravish toggle show/display...

pone spored men problema e che default-a e UNDEFINED, t.e. parvia pat go setvash na NONE (t.e. ne se pokazva) i chak vtoria ot NONE stava BLOCK - t.e. pokazva se, i ottam natatak neshtata varvat nared...

probvai onLoad da setnesh .display="none" na vaprosnite blokove i sha stane...

Just a genius[email protected]
[линк]
Отговор
в отговор на Blake #3

Re: problem with JS

da, towa e problema. Mnogo 10x za Blake :)

btw zashto se nalaga purvonachalno setvane na "none", pri polojenie she na vuprosnite blokove sum dal da sa "none" v style-sheeta ...

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на Borg #4

Re: problem with JS

mi ninam shto taka, ama i s drugi property-ta stava taa rabota... ako ne gi setnesh on-the-fly ti vrashtat undefine...

ako ne se laja s width v IE stavat sashtite raboti - vapreki che si kazal v CSS-to width: 100px, operacii ot sorta blabla.width=blabla.width+10 ne varvyat ako ne napravish predi tova blabla.width=100;

Just a genius[email protected]
[линк]
Отговор
в отговор на Blake #5

Re: problem with JS

това според мен става само с getElementById(). когато си ползвам document.all (IE only разбира се) нема такива бъгове (поне аз до сега не съм се натъквал на подобен случай) - всичко си сработва както трябва, обаче пък е само за експлорер ...

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на Blake #6

malko gimnastika i gotowo :)

Blake e praw che pyrwonachalno style.display ne e setnato ... obache twoia problem moje da se uprawi i po slednia nachin bez da setwash izrichno display propertito na elemnta :)

function show(lal)
{
if ( document.getElementById(lal).style.display == "block") { document.getElementById(lal).style.display = "none"; }
else { document.getElementById(lal).style.display = "block"; }
}

taka bi triabwalo da stane :)

Отговор
в отговор на Borg #7

vapros

tova mi haresa

neshto protiv code reuse?

Livin' La Vida Sofa
Отговор
в отговор на AC #8

Много против ;))

Имаш пълен лиценз за неограничен брой конекции

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на vALE #9

Re: malko gimnastika i gotowo :)

стана :)) много мерси, мосю

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор
в отговор на Borg #10

be she ima iadove mai

gledam she polzvash server ta da ti kaja che sia se divcha nad problema kak pri seki request kum servera da ne mi zatvaria menu-to

to iasno kak de... otnachalo ne tria da e display: none... ma kak she stane... oshte ne sum izmislil...

niakakvi idei?

Livin' La Vida Sofa
Отговор
в отговор на AC #11

Re: be she ima iadove mai

ми бисквитки бе пич, тураш си една бисквита и си пазиш кое е отворено и кое не. може и динамично от сървър-а - с таблица (примерно), ама по-добре с кукита (не ме питай как - не съм бачкал с тях)

"Търсейки по-доброто, често губим доброто" (Шекспир)
Отговор