ورود

View Full Version : سوال در مورد کد نمایش و عدم نمایش Div



arian_P
دوشنبه 31 خرداد 1389, 08:36 صبح
با سلام به دوستان عزیز
من برای نمایش و عدم نمایش div از تابع زیر استفاده می کنم درست هم عمل می کنه اما فقط یه ایراد داره که
دفعه اول با کلیک کردن روی آیکنی که این تابع رو فراخوانی میکنه div جمع نمیشه یعنی دفعه اول عمل نمی کنه بلکه از دفعه دوم به بعد عمل میکنه. کسی می تونه منو راهنمایی کنه ممنون میشم


function showHide(ref) {
if (document.getElementById(ref).style.display == "block") {
document.getElementById(ref).style.display = "none";
document.getElementById(ref).style.visibility = "hidden";
}
else {
document.getElementById(ref).style.display = "block";
document.getElementById(ref).style.visibility = "visible";
} }
}

emad_67
دوشنبه 31 خرداد 1389, 10:47 صبح
به خاطر اینه که بار اول وقتی روی دکمه کلیک می کنی، خصوصیت display مقدار block رو نداره و قسمت else فقط اجرا میشه، و در دقعات بعد چون مقدار block در قسمت else بهش نسبت داده شده درست کار می کنه.
برای حل این مشکل 2 راه داری. می تونی کدت رو به این شکل تغییر بدی:


if (document.getElementById(ref).style.display == "") {
document.getElementById(ref).style.display = "none";
document.getElementById(ref).style.visibility = "hidden";
}
else {
document.getElementById(ref).style.display = "";
document.getElementById(ref).style.visibility = "visible";
}

یا اینکه تغییری توی کد جاوا اسکریپت ندی و خاصیت display رو به div اضافه کنی:


<div id="txt" style="display:block">dddd</div>

ضمنا وقتی display رو none می کنی دیگه نیازی نیست visibility رو هم تغییر بدی.

arian_P
دوشنبه 31 خرداد 1389, 11:46 صبح
بسیار بسیار سپاسگزارم ، درست کار کرد:لبخندساده: