ورود

View Full Version : سوال: آیا با jQuery میشه visible:false رو true کرد ؟؟



nimadows
یک شنبه 09 تیر 1392, 00:19 صبح
سلام به اساتید عزیز
همانطور که میدانید یک سری از کدهای jQuery میشه hide یا تغییری در style یا css داد
$(".div").css("disable","none")
آیا میشه visible="false رو به true تبدیل کرد ؟؟

nasrin55
یک شنبه 09 تیر 1392, 09:06 صبح
مشابه کدی که خودتون نوشتید:

$("#elem").css('visibility', 'visible');

اگه از display استفاده کردید :


$("#elem").show();

nimadows
یک شنبه 09 تیر 1392, 11:45 صبح
اما این هم جلوی لود رو نمیگیره .
'visible' هست اما محتویات لود میشه

afshin9032
یک شنبه 09 تیر 1392, 19:31 عصر
این توابع هم روی عناصر بارگذاری شده کار می کنند .
دقیقا چه چیزی مد نظرتون هست ؟

nimadows
یک شنبه 09 تیر 1392, 20:07 عصر
ممنون از توجهت
ببین افشین جان یه div دارم که داخلش دیتا لیست وجود داره که تعداد عکسهای زیادی رو نشون میدم باهاش
که داخل صفحه هست فقط $(".div").css("disable","none") کردم و با کلیک بر روی عکس اونو block میکنم تا دیده بشه ، اما قبل از کلیک لود میشه و سایت رو سنگین کرده
من میخوام قبل از زدن لود شده نباشه و وقتی زدم تازه شروع به لود کنه

nasrin55
دوشنبه 10 تیر 1392, 08:24 صبح
فکر کنم باید داخل page load هم این کد رو بنویسی:


("div").Style.Add("display", "none");

nimadows
دوشنبه 10 تیر 1392, 10:21 صبح
نه این هم جواب نمیده
حتما باید کدی چیزی باشه ولی من هر چی می گردم پیدا نمیکنم

کامروا
دوشنبه 10 تیر 1392, 11:54 صبح
شما میتونید از طریق یک فایل External این کارو انجام بدید :
فرض میکنیم Divی که شما میخواین نمایش بدید رو توی یک فایل به اسم external.html ذخیره کردین :

HTML :

<input id="btn" type="button" value="Load Div"/>
<div id="Container" style="width: 200px; height: 200px; background-color: #ccc; "></div>

jQuery :
$("#btn").click(function(){$("div#Container").load('/external.html');});

خب همونطور که میبینید وقتی روی دکمه کلیک میکنید اطلاعات شما از فایل external.html لود میشه و درون Div با آی دی Container نشان داده میشه.

موفق باشید

nimadows
دوشنبه 10 تیر 1392, 13:17 عصر
اون div داخلش DataList وجود داره کلی عکس رو باهاش نشون میدم
اون DataList که داخلش عکس هست لود میشه و سایت رو خیلی سنگین میکنه

کامروا
دوشنبه 10 تیر 1392, 13:25 عصر
اون div داخلش DataList وجود داره کلی عکس رو باهاش نشون میدم
اون DataList که داخلش عکس هست لود میشه و سایت رو خیلی سنگین میکنه
شما جای external.html اسم هر صفحه رو که دارید میتونید قرار بدید. مثل mypage.php یا mypage.aspx ...

از طریق روش فوق شما میتونید Div که حاوی DataList هست رو لود کنید حالا اگر صفحه سنگین میشه مربوط به DataList و عکس هایی که داخلش قرار دادید هست.

الان مشکل دقیقا چی هست؟

nimadows
دوشنبه 10 تیر 1392, 13:35 عصر
ممنون از توجهت
با این روش که فرمودین قبل از کلیک دیگه لود نمیشه ؟

nimadows
دوشنبه 10 تیر 1392, 13:36 عصر
من میخوام قبل از کلیک لود نشه ، که page سنگین نشه

کامروا
دوشنبه 10 تیر 1392, 13:42 عصر
ممنون از توجهت
با این روش که فرمودین قبل از کلیک دیگه لود نمیشه ؟

نه دیگه.

چرا؟

چون شما اطلاعاتی که میخوایی لود بشه رو توی یک صفحه جداگانه مثلا به اسم mypage.aspx قرار دادی.
پس عملا تا اینجا هیچ ارتباطی با صفحه mypage.aspx نداریم.
حالا توی کد jQuery نوشتیم که اگر دکمه رو کلیک کرد، بره صفحه mypage.aspx رو واسمون لود کنه.

همون چیزیه که شما میخواین...

nimadows
دوشنبه 10 تیر 1392, 13:47 عصر
این div که داخلش دیتا لیست وجود داره disable:none هستش و فقط دیده نمیشه اما کاملا همراه با تمامی سایت لود میشه
نمیشه جلوی لود شدنش رو گرفت و به محض زدن کلیک که div ظاهر میشه اون دیتا لیست هم لود بشه ؟

nimadows
دوشنبه 10 تیر 1392, 13:51 عصر
آخه از روی صفحه ای نمیخونه یک دیتا لیست هست که اطلاعات کاربر رو نشون میده

کامروا
دوشنبه 10 تیر 1392, 15:31 عصر
لطفا کدهای همین قسمت رو قرار بدید تا ببینم.

afshin9032
دوشنبه 10 تیر 1392, 20:05 عصر
ممنون از توجهت
ببین افشین جان یه div دارم که داخلش دیتا لیست وجود داره که تعداد عکسهای زیادی رو نشون میدم باهاش
که داخل صفحه هست فقط $(".div").css("disable","none") کردم و با کلیک بر روی عکس اونو block میکنم تا دیده بشه ، اما قبل از کلیک لود میشه و سایت رو سنگین کرده
من میخوام قبل از زدن لود شده نباشه و وقتی زدم تازه شروع به لود کنه
یک راهکار اینه که مسیر عکس ها رو یک جا ذخیره کنی ، بعد از کلیک دیتا لیست رو ایجاد کن

nimadows
دوشنبه 10 تیر 1392, 20:19 عصر
یک راهکار اینه که مسیر عکس ها رو یک جا ذخیره کنی ، بعد از کلیک دیتا لیست رو ایجاد کن

یه راه حل هست اما نمیدونم چطوری میشه
اگه دیو که داخلش دیتا لیست هست visible=false بشه دیگه لود نمیشه اما نمیخوام با کلیک اونو true کنم چون صفحه رفرش مشیه با jquery هم مثل اینکه نمیشه true کرد

کامروا
دوشنبه 10 تیر 1392, 20:37 عصر
ببینید من یک روش ساده رو واستون مثال میزنم :

فرض میکنیم شما یک Div دارید که توی این هم یک img قرار داره.

حالا شما میخواین وقتی روی Button کلیک میکنید img در داخل تگ Div لود بشه.

HTML :
<div id="container">
<input id="btn" type="button" value="Load Div"/>
</div>


خب حالا ما میخوایم که وقتی روی دکمه کلیک میکنیم، یک تگ img ایجاد کنیم و بهش یک یکسری خصوصیات بدیم.

دستورات jQUery برای اینکار :
$('#btn').click(function () {
var imgDiv = document.createElement('div');
$(imgDiv ).addClass('content');
$(imgDiv).append('<img id="dynamicImg" src="http://www.kippaxvet.com.au/Portals/kippaxvet/cute%20pup.jpg" height=40px />')
$("#container").append(imgDiv);
});

nimadows
دوشنبه 10 تیر 1392, 21:04 عصر
خوب حالا باید چطوری جایگزین کنم ؟

کامروا
دوشنبه 10 تیر 1392, 21:58 عصر
کامروا جان ممنون از صبوریت
این کد رو من نوشتم اما کار نمیکنه

بفرمایید این هم دمو بصورت آنلاین :|
http://jsfiddle.net/9N2zn
(http://jsfiddle.net/9N2zn/)
این خط کد هم اضافه کردم به کدهای jQuery :
$('#container').find('.content').remove();

که میاد قبل از اینکه Element رو بسازه ، اون رو حذف میکنه که تکراری ایجاد نشه.

موفق باشید

کامروا
دوشنبه 10 تیر 1392, 22:11 عصر
البته بهتره قبل از اینکه Element رو Create کنید، چک کنید اگر وجود نداشته باشه ، سپس اقدام به Create کردن کنه :

if ($(".content").not(exists())) {
// Do something
}

یا

if ($(".content").length == 0) {
// Do Something
}

(این روش ها بهتر از اون روش پست قبل هست که اول Element رو Remove میکنه و بعد Create)

nimadows
سه شنبه 11 تیر 1392, 11:22 صبح
اين روش که فرمودين خوب بود اما به کارم نميخوره


کدهايي که در قسمت asp.csنوشتم باعث ميشه ارور بده




 

 

 

nimadows
سه شنبه 11 تیر 1392, 11:31 صبح
من فقط میخوام

<div id="div1"runat="server"visible="false"></div>

این div رو از fasle به true تغییر بدم
البته با jquery که صفحه رفرش نشه

کامروا
سه شنبه 11 تیر 1392, 14:58 عصر
داداش من ، فدات بشم، شما چرا دقت نمیکنی !:عصبانی++:

شما اول میگین که میخوام Visible یک Element رو True کنم که دوستان توی پست شماره #2 راهنماییتون کردن.

بعد میایین میگین که نه میخوام وقتی روی دکمه کلیک کردم لود بشه و نمیخوام هنگامی که صفحه لود میشه اونم لود بشه چون سنگینه! منم در جواب گفتم که خب اگر نمیخواین هنگام PageLoad المنت Load شه ، یکی از روش هاش اینه که اون بخشی که میخواین Load نشه رو توی یک فایل جداگونه ذخیره کنید و وقتی که روی دکمه کلیک میکنید، اون صفحه خارجی رو لود کنید. (پست شماره #8)

بعد گفتم یک روش دیگه اینه که بیایین وقتی رو دکمه کلیک میکنید، Element ها رو Create کنید که مثالش هم واستون قرار دادم. (پست شماره #19)

بعد شما دوباره اومدین میگین :

من فقط میخوام

<div id="div1"runat="server"visible="false"></div>

این div رو از fasle به true تغییر بدم
البته با jquery که صفحه رفرش نشه

بنظر من بهتره یکم در مورد JavaScript و jQuery مطالعه داشته باشید.

اخه اینطور هرچی من میگم شما میگی نمیشه !:اشتباه:

ببخشید اگر جسارت کردم.:چشمک:

موفق باشید..

nimadows
چهارشنبه 12 تیر 1392, 12:29 عصر
دوست عزیز من در جواب پست 2 گفتم که این باعث میشه فقط دبده نشه اما محتویات لود میشه
و در رابطه با راهنمایی شما هم تشکر کردم و باز عرض کردم که کدهایی که داخل asp.cs ذخیره کردم باعث میشه سایت ارور بده
فکر کنم هم با دقت سوال کردم هم امتحان کردم
به سوالی که من کردم شما دقت کنین

(سلام به اساتید عزیز
همانطور که میدانید یک سری از کدهای jQuery میشه hide یا تغییری در style یا css داد
$(".div").css("disable","none")
آیا میشه visible="false رو به true تبدیل کرد ؟؟ )
این به نظرتون نشون نمیده من در JavaScript و jQuery مطالعه داشتم بعد اومدم این سوال رو مطرح کردم ؟؟!!

اما باز از توجهت ممنون کامروا

afshin9032
چهارشنبه 12 تیر 1392, 15:05 عصر
نیما یک راه حل به ذهنم رسیده اما باید تستش کنی ، یادم هست تو یکی از پروژه ها تست کردم جواب داد .
اون لیست رو به عنوان یک رشته در یک فیلد hidden ذخیره کن ، بعذ وقتی کلیک میکنی اون رشته رو از فیلد بگیر و در رویداد load قرار یده و وقتی که load کامل شد اون رو در div نمایش بده .

nimadows
چهارشنبه 12 تیر 1392, 15:19 عصر
افشین جان میشه نمونه کد رو برام بنویسی

afshin9032
پنج شنبه 13 تیر 1392, 13:23 عصر
نمونه کد :

htmlContent='<div><img src="sample.jpg" /><img src="sample1.jpg" /><img src="sample2.jpg" /><img src="sample3.jpg" /></div>';
$("#button").click(function() {
$(htmlContent).load(function(){
$("#div").html(htmlContent);
});
});