ورود

View Full Version : سوال: غیر فعال شدن فراخوانی یک تابع بعد از یک بار فراخوانی



aroshanzamir
سه شنبه 20 اسفند 1392, 17:19 عصر
سلام دوستان من یه CheckBoc روی صفحه دارم می خواهم وقتی Checked b اون True بود کل CheckBox های صفخه Checked اون ها هم True بشه
و برعکس وقتی False بود کل CheckBox های صفحه Unchecked شوند .؟

تابع من درست کار میکنه فقط برای بار اول ....
از بار دوم به بعد دیگه تابع myFunction را فراخوانی نمی کنه ؟

HTML :


<input id="chTotal" type="checkbox" onchange="myfunction()"/>Select Total :
<br /><br />
<div class="divch" id="divch">
<input id="Checkbox1" type="checkbox"/>Student<br />
<input id="Checkbox2" type="checkbox" />Employee<br />
<input id="Checkbox3" type="checkbox" checked="checked"/>Teacher<br />
</div>

Jquery :

<script type="text/javascript">
jQuery(function () {
$('#chTotal').change(function () {
myfunction();
});
function myfunction() {
if ($('#chTotal').is(':checked')) {
$('#divch :Checkbox').each(function (index, item) {
var id = $(item).attr('id');
if ($('#' + id).is(':checked')) { }
else { $('#' + id).attr('checked', 'checked'); }
});
}
else {
$('#divch :Checkbox').each(function (index, item) {
var id = $(item).attr('id');
if ($('#' + id).is(':checked'))
{ $('#' + id).removeAttr('checked'); }
});
}
};


});


</script>

***BiDaK***
سه شنبه 20 اسفند 1392, 18:13 عصر
سلام بجای attr برای checked از prop استفاده کنید.
در ضمن شما میتونید در یک خط هم این کارو انجام بدید:
$('#chTotal').click(function () { $('input:checkbox').prop('checked', this.checked);
});

aroshanzamir
چهارشنبه 21 اسفند 1392, 01:11 صبح
انجا نمیشه ...

منظور من اینه که اولین بار درست کار میکنه .. از بار دوم به بعد مشکل پیدا می کنه .....

***BiDaK***
چهارشنبه 21 اسفند 1392, 01:42 صبح
بله منظورتونو فهمیدم.
اجرا میشه.
اینجا (http://jsfiddle.net/nEp2V/)رو ببین.
**************
اینجا (http://jsfiddle.net/nEp2V/1/)هم اجرای کد شما.