View Full Version : مشخص کردن item کلیک شده در checkboxList
alibabaei2
جمعه 19 اسفند 1390, 11:26 صبح
با سلام
در صفحه یک checkboxList دارم می خوام با تیک خوردن هر item یک المنت تو صفحه نمایش داده بشه و وقتی تیک اون المنت برداشته شد مجداداً اون المنت خاص display:none بشه
با دستور زیر این کار رو کردم فقط مشکل اینجاست که وقتی اون المنت نمایش داده میشه روی هر کدوم از اون item ها که کلیک کنم اون المنت از صفحه میره در صورتی که من می خوام یه جوری بفهمم که روی کدوم item کلیک شده و با کلیک کردن روی همون item المنت از صفحه بره بیرون
$(document).ready(function () {
var inID = document.getElementById("#CheckBoxList1 input");
$("#CheckBoxList1 input").click(function () {
$('#newDiv').slideToggle();
});
});
yones_safari
جمعه 19 اسفند 1390, 14:04 عصر
عزیزم از کلمه کلیدی this برای سلکتور استفاده کن تا اونی که کلیک شده رو بفهمی.
alibabaei2
جمعه 19 اسفند 1390, 21:30 عصر
عزیزم از کلمه کلیدی this برای سلکتور استفاده کن تا اونی که کلیک شده رو بفهمی.
کجا باید از this استفاده کنم؟
yones_safari
شنبه 20 اسفند 1390, 09:17 صبح
کجا باید از this استفاده کنم؟
ببین دوست عزیز مثلا اگه کلاس چک باکسهای ما item باشه ما برای اینکه بفهمیم روی کدوم چک باکس کلیک شده از دستور this به شکل زیر استفاده میکنیم:
$(document).ready(function(){
$(".item").click(function(){
$(this).fadeOut(1000);
});
});
که در دستور بالا روی هر کدام از چک باکس ها که کلیک بشه اون چک باکس محو میشه.
موفق باشید.
narsic
شنبه 20 اسفند 1390, 11:24 صبح
با سلام
در صفحه یک checkboxList دارم می خوام با تیک خوردن هر item یک المنت تو صفحه نمایش داده بشه و وقتی تیک اون المنت برداشته شد مجداداً اون المنت خاص display:none بشه
با دستور زیر این کار رو کردم فقط مشکل اینجاست که وقتی اون المنت نمایش داده میشه روی هر کدوم از اون item ها که کلیک کنم اون المنت از صفحه میره در صورتی که من می خوام یه جوری بفهمم که روی کدوم item کلیک شده و با کلیک کردن روی همون item المنت از صفحه بره بیرون
$(document).ready(function () {
var inID = document.getElementById("#CheckBoxList1 input");
$("#CheckBoxList1 input").click(function () {
$('#newDiv').slideToggle();
});
});
شما باید دستورت کلیک رو برای هر کدوم ازا check box ها به صورت جداگانه بنویسی که بعد به تونی مشخص کنی که هرکدوم با کلیک شدن کدوم المنت رو نمایش بدن یا مخفی کنن
البته اگه بخوای از همین روش خودت هم استفاده کنی راهش اینه که برای هر چک باکس یک Attr جدید اضافه کنی که در اون ID المنتی که میخوای روش کار کنه رو مشخص کنی
راه دیگه هم اینه که المنت مربوط به هر check box دارای اسم یا id . check box به عنوان پیشوند باشه.
موفق باشید
yones_safari
شنبه 20 اسفند 1390, 11:35 صبح
شما باید دستورت کلیک رو برای هر کدوم ازا check box ها به صورت جداگانه بنویسی که بعد به تونی مشخص کنی که هرکدوم با کلیک شدن کدوم المنت رو نمایش بدن یا مخفی کنن
البته اگه بخوای از همین روش خودت هم استفاده کنی راهش اینه که برای هر چک باکس یک Attr جدید اضافه کنی که در اون ID المنتی که میخوای روش کار کنه رو مشخص کنی
راه دیگه هم اینه که المنت مربوط به هر check box دارای اسم یا id . check box به عنوان پیشوند باشه.
موفق باشید
عزیزم اصلا نیازی به این همه پیچیدگی نیست که!!!!!!
در همون پست بالا که گفتم میتونی با تابع index چک کنی ببینی که رو کدوم عنصر کلیک شده.صفر اولین عنصر و یک دومین عنصر و ......
موفق باشید.
alibabaei2
یک شنبه 21 اسفند 1390, 00:13 صبح
عزیزم اصلا نیازی به این همه پیچیدگی نیست که!!!!!!
در همون پست بالا که گفتم میتونی با تابع index چک کنی ببینی که رو کدوم عنصر کلیک شده.صفر اولین عنصر و یک دومین عنصر و ......
موفق باشید.
با سلام و تشکر بابت پاسخ هاتون
این کدی که شما فرمودید برای موقعی هست که بخواهیم خود همون item از صفحه پاک بشه در صورتی که من می خوام یک المنت دیگری با کلیک شدن بیاد و وقتی هم که تیکitem برداشته میشه همون المنت از صفحه بره
alibabaei2
یک شنبه 21 اسفند 1390, 00:42 صبح
البته اگه بخوای از همین روش خودت هم استفاده کنی راهش اینه که برای هر چک باکس یک Attr جدید اضافه کنی که در اون ID المنتی که میخوای روش کار کنه رو مشخص کنی
ممکنه بیشتر توضیح بدید
متوجه نشدم
yones_safari
یک شنبه 21 اسفند 1390, 02:13 صبح
با سلام و تشکر بابت پاسخ هاتون
این کدی که شما فرمودید برای موقعی هست که بخواهیم خود همون item از صفحه پاک بشه در صورتی که من می خوام یک المنت دیگری با کلیک شدن بیاد و وقتی هم که تیکitem برداشته میشه همون المنت از صفحه بره
عزیزم منظورمو نگرفتی ببین ما با تابع index چک میکنیم ببینیم رو کدوم کلیک شده اگه صفر بود اولی و اگه یک بود دومی و .....حالا شما میتونی متناسب با اون کدی که میخوای رو اجرا بکنی.اون بالاییه مثالی برای this بود دادا.به کد زیر دقت کن در قسمت توضیحاتی که گذاشتم میتونی هر عملی که میخوای رو انجام بدی.
$(document).ready(function(){
$(".item").click(function(){
if($(this).index()==0)
//CODE;
else if($(this).index()==1)
//CODE;
});
});
موفق باشید.
narsic
یک شنبه 21 اسفند 1390, 09:22 صبح
ممکنه بیشتر توضیح بدید
متوجه نشدم
این لینک رو ببین
http://jsfiddle.net/narsic/XvqGn/
اگه سوآلی داشتی بپرس
البته روش yones_safari عزیز هم درسته اما یکم پیچیدست
*البته استفاده از این روش باعث تایید نشدن استاندارد بودن کدهای شما میشه، چون شما خصیصه ایی اضافه میکنید که برای مرورگر ها تعریف نشده. البته این تایید نشدن مشکل خاصی به وجود نمیاره میتونید فعلا از همین روش استفاده کنید.
موفق باشید
alibabaei2
یک شنبه 21 اسفند 1390, 15:43 عصر
این لینک رو ببین
http://jsfiddle.net/narsic/XvqGn/
اگه سوآلی داشتی بپرس
البته روش yones_safari عزیز هم درسته اما یکم پیچیدست
*البته استفاده از این روش باعث تایید نشدن استاندارد بودن کدهای شما میشه، چون شما خصیصه ایی اضافه میکنید که برای مرورگر ها تعریف نشده. البته این تایید نشدن مشکل خاصی به وجود نمیاره میتونید فعلا از همین روش استفاده کنید.
موفق باشید
از کد شما استفاده کردم جواب هم داد اما مشکل اینجاست که من اطلاعاتی که در checkbox ها نمایش داده میشه رو از دیتا بیس می خونم و به این صورت استفاده کردم
اما مشکل اینجاست که روی اسمی که کنار checkbox هست کلیک می کنم به مشکل بر می خورم و فقط باید روی input کیلک کنم ، روی label بقل input که کلیک می کنم یک بار المنت نمایش داده میشه و مجداداً از صفحه می ره
انگار که رو بار روی input کلیک کردم
<asp:Repeater ID="Repeater1" runat="server" DataSourceID="EntityDataSource1">
<ItemTemplate>
<asp:CheckBox ID="CheckBox1" runat="server" Text='<%# Eval("DegreeTypeTitle") %>' divForit='<%# Eval("DegreeTypeName") %>' />
<br />
<div id='<%# Eval("DegreeTypeName") %>' style="display:none;">
<asp:TextBox ID="TextBox1" runat="server"></asp:TextBox>
</div>
</ItemTemplate>
</asp:Repeater>
$(document).ready(function () {
$("span").click(function () {
$('#' + $(this).attr('divForit')).slideToggle('slow');
$('#' + $(this).attr('divForit')).css('margin-bottom', '40px');
});
});
narsic
یک شنبه 21 اسفند 1390, 16:19 عصر
کد نهایی هم که صفحه تولید میکنه رو قرار بدید.
alibabaei2
یک شنبه 21 اسفند 1390, 18:05 عصر
کد نهایی هم که صفحه تولید میکنه رو قرار بدید.
<span divForit="kardani"><input id="Repeater1_CheckBox1_0" type="checkbox" name="Repeater1$ctl00$CheckBox1" /><label for="Repeater1_CheckBox1_0">کاردانی</label></span> <br /> <div id='kardani' style="display:none;"> <input name="Repeater1$ctl00$TextBox1" type="text" id="Repeater1_TextBox1_0" /> </div> <span divForit="karshenasinapeyvasteh"><input id="Repeater1_CheckBox1_1" type="checkbox" name="Repeater1$ctl01$CheckBox1" /><label for="Repeater1_CheckBox1_1">کارشناسی ناپیوسته</label></span> <br /> <div id='karshenasinapeyvasteh' style="display:none;"> <input name="Repeater1$ctl01$TextBox1" type="text" id="Repeater1_TextBox1_1" /> </div> <span divForit="karshenasipeyvasteh"><input id="Repeater1_CheckBox1_2" type="checkbox" name="Repeater1$ctl02$CheckBox1" /><label for="Repeater1_CheckBox1_2">کارشناسی پیوسته</label></span> <br /> <div id='karshenasipeyvasteh' style="display:none;"> <input name="Repeater1$ctl02$TextBox1" type="text" id="Repeater1_TextBox1_2" /> </div> <span divForit="karshenasiarshad"><input id="Repeater1_CheckBox1_3" type="checkbox" name="Repeater1$ctl03$CheckBox1" /><label for="Repeater1_CheckBox1_3">کارشناسی ارشد</label></span> <br /> <div id='karshenasiarshad' style="display:none;"> <input name="Repeater1$ctl03$TextBox1" type="text" id="Repeater1_TextBox1_3" /> </div> <span divForit="Phd"><input id="Repeater1_CheckBox1_4" type="checkbox" name="Repeater1$ctl04$CheckBox1" /><label for="Repeater1_CheckBox1_4">دکترا</label></span> <br /> <div id='Phd' style="display:none;"> <input name="Repeater1$ctl04$TextBox1" type="text" id="Repeater1_TextBox1_4" /> </div>
narsic
یک شنبه 21 اسفند 1390, 20:06 عصر
بله درسته چون شما انتخاب گر رو Span گذاشتید.
وقتی که روی label کلیک میکنید یک تابع توسط مرورگر فراخوانی میشه که باعث Focus کردن بر روی المنتی میشه که در label قرار داره و این focus کردن هم در حقیقت نوعی کلیک کردن هم طلقی میشه (برای یک سری از المنت های خاص) پس کد شما یک کلیک روی label داره و یکی هم توسط label و مرورگر روی input شما به این دلیله که این اتفاق میفته بهتره انتخابگر رو روی همون input بزارید.
موفق باشید
vBulletin® v4.2.5, Copyright ©2000-1404, Jelsoft Enterprises Ltd.