ورود

View Full Version : ایجاد حلقه بینهایت برای مقدار دهی checked به تعداد مشخصی دکمه رادیویی



bobSilon
دوشنبه 21 اسفند 1391, 12:33 عصر
دوستان من 5 تا دکمه رادیویی دارم که میخوام اینا به ترتیب مقدار checked رو با یه تاخیر مثلا 1 ثانیه ای بگیرن.


<input type="radio" name="radioButton" id="rd1">
<input type="radio" name="radioButton" id="rd2">
<input type="radio" name="radioButton" id="rd3">
<input type="radio" name="radioButton" id="rd4">
<input type="radio" name="radioButton" id="rd5">

مساله اینجاس که این پروسه باید به صورت بینهایت تکرار بشه و من برای اینکار کد زیر رو استفاده کردم:

$(document).ready(function () {
$('input[name=radioButton]').each(function (index) {
var $this = $(this);
setTimeout( function() {
$this.prop('checked', true);
}, 1000 * index );
});
});


اما مشکل این کد اینه که فقط یک بار اونها رو مقدار دهی میکنه. چطور میشه اینکار رو بصورت بینهایت تکرار کرد؟

Variable
دوشنبه 21 اسفند 1391, 13:19 عصر
به جای تابع setTimeOut
از تابع setInterval استفاده کن
فقط اسم تابع رو تغییر بده

bobSilon
دوشنبه 21 اسفند 1391, 14:11 عصر
اینکار رو کردم ولی فقط دکمه اول رو checked میکنه و دیگه کار نمیکنه. با setTimeOut یک دور همه اونارو مقدار دهی میکنه و دیگه ادامه نمیده

amirashna
دوشنبه 21 اسفند 1391, 17:52 عصر
اینطوری تست کن

$(document).ready(function () {
while(true){
$('input[name=radioButton]').each(function (index) {
var $this = $(this);
setTimeout( function() {
$this.prop('checked', true);
}, 1000 * index );
});
}
});

bobSilon
سه شنبه 22 اسفند 1391, 01:12 صبح
اینکارو هم کردم بازم جواب نداد یعنی هیچکدوم از دکمه ها انتخاب نشدن.
کلا راهی هست که بشه با جی کوئری کاری کرد که این دکمه ها تو یه چرخه ی تکراری نامحدود به ترتیب انتخاب بشن و دوباره از نو شروع بشه انتخاب شدنشون؟

jalil_gh
چهارشنبه 23 اسفند 1391, 12:37 عصر
اینو امتحان کن.

var index = 0,
$inputs = $('input[name=radioButton]'),
len = $inputs.length;

setInterval(function(){

if (index < len) {
$inputs.eq(index).prop('checked', true);
}

index++;

if (index >= len) {
index = 0;
$inputs.prop('checked', false);
}
}, 1000);

امیدوارم اون چیزی باشه که میخای

bobSilon
چهارشنبه 23 اسفند 1391, 15:21 عصر
مرسی جلیل جان جواب داد