ورود

View Full Version : مبتدی: نمایش / نهان سازی بوسیله JavaScript



mr_mtc
جمعه 15 شهریور 1392, 14:33 عصر
سلام، من برای پروژه ام نیاز دارم که بخشی به صورت پیش فرض نشون داده نشه و پس از کلیک بر روی لینک قسمتهایی نمایش داده بشه. برای این کار از دستور زیر استفاده کردم:


<a href="javascript:hideshow(document.getElementById('adiv' ))">Click here</a>


<script language="javascript" type="text/javascript">
function hideshow(which){

if (!document.getElementById)
return
if (which.style.display=="block")
which.style.display="none"
else
which.style.display="block"
}
</script>


که کار هم میکنه و مشکلی نداره، ولی نیاز دارم که یک لیست (آرایه) بهش بدم و اون تک تک حالت نمایش/نهان رو تغییر بده؛ برای همین به این شکل تغییرش دادم که کار نمیکنه:


<script language="javascript" type="text/javascript">
function hideshow(which){
var i=0;
while (which[i])
{
if (!document.getElementById)
return
if (which[i].style.display=="block")
which[i].style.display="none"
else
which[i].style.display="block"
i++;
}
}
</script>


که اجرا نمیشه، لطفا اگر میشه کمکم کنید و ایراد قسمت دوم رو بهم بگید...

jalil_gh
جمعه 15 شهریور 1392, 19:06 عصر
شاید اشکال تایپی باشه ولی تو جاوااسکریپت تابع رو به این صورت تعریف میکنن:
function hideShow(which) {}
نه به این صورت:
function hideShow[which] {}

mr_mtc
جمعه 15 شهریور 1392, 22:07 عصر
درسته، اشتباه کپی کردم!!!

MSK
چهارشنبه 20 شهریور 1392, 13:04 عصر
یه راه دیگه اینه که حلقه‌ت رو اینطوری بنویسی:


for(var i=0, var len=which.length; i < len; i++)

masious
جمعه 22 شهریور 1392, 06:16 صبح
می تونین از همون تابعی که اول گفتین استفاده کنین و از متد apply استفاده کنین:

hideShow.apply(this,which)

تا تابع بر روی تمام اعضای آرایه، اجرا بشه.