最新消息:雨落星辰是一个专注网站SEO优化、网站SEO诊断、搜索引擎研究、网络营销推广、网站策划运营及站长类的自媒体原创博客

javascript - JQuery toggleClass() checkbox unchecked - Stack Overflow

programmeradmin3浏览0评论

Hi Please check below code -

HTML

<div class="manage-user-freind" style="line-height:18px; cursor:pointer;">
  <span style="color:blue;">
    <img src="'+pageUrl+'/img/user-16x16.png" height="14" style="float:left; padding-top:2px;" /><input class="chk" type="checkbox" value="10" />pieter
  </span>
</div>

<div class="manage-user-freind" style="line-height:18px; cursor:pointer;">
  <span style="color:blue;">
    <img src="'+pageUrl+'/img/user-16x16.png" height="14" style="float:left; padding-top:2px;" /><input class="chk" type="checkbox" value="12" />john
  </span>
</div>

JQuery

$('.manage-user-freind').click(function(){
     $(this).toggleClass('clicked',function(){
            $('.chk').prop('checked', true);
     });
});

CSS

.clicked {
  background-color: yellow;
}

I have used toggleClass() function. toggleClass is working fine but all the check-boxes clicked also not unchecked the current checkbox .

I need when I will click any div first show that div in yellow color along with current checkbox checked. Again clicking on that yellow color div will remove and also checkbox will unchecked.

Thanks.

Sorry for my English wording. :(

Hi Please check below code -

HTML

<div class="manage-user-freind" style="line-height:18px; cursor:pointer;">
  <span style="color:blue;">
    <img src="'+pageUrl+'/img/user-16x16.png" height="14" style="float:left; padding-top:2px;" /><input class="chk" type="checkbox" value="10" />pieter
  </span>
</div>

<div class="manage-user-freind" style="line-height:18px; cursor:pointer;">
  <span style="color:blue;">
    <img src="'+pageUrl+'/img/user-16x16.png" height="14" style="float:left; padding-top:2px;" /><input class="chk" type="checkbox" value="12" />john
  </span>
</div>

JQuery

$('.manage-user-freind').click(function(){
     $(this).toggleClass('clicked',function(){
            $('.chk').prop('checked', true);
     });
});

CSS

.clicked {
  background-color: yellow;
}

I have used toggleClass() function. toggleClass is working fine but all the check-boxes clicked also not unchecked the current checkbox .

I need when I will click any div first show that div in yellow color along with current checkbox checked. Again clicking on that yellow color div will remove and also checkbox will unchecked.

Thanks.

Sorry for my English wording. :(

Share Improve this question asked May 20, 2015 at 7:28 DeveloperDeveloper 2,7068 gold badges45 silver badges65 bronze badges
Add a ment  | 

4 Answers 4

Reset to default 5

Try this:

$('.manage-user-freind').on('click', function() {
    $(this).toggleClass('clicked').find('.chk').prop('checked', $(this).hasClass('clicked'));
});

Demo: https://jsfiddle/tusharj/d84z5vub/1/

$.toggleClass don't have callback function. It's not async function, so you can move $('.chk').prop('checked', true); to next statement along toggling class:

$(this).toggleClass('clicked');
$('.chk').prop('checked', true);

To check and uncheck, this code should work:

$('.manage-user-freind').click(function(){
     $(this).toggleClass('clicked');
     var checkbox = $(this).find('.chk');
     checkbox.prop('checked', !checkbox.prop("checked"));
});

Here is a Fiddle.

According to this: jquery function on toggleClass plete?

you can use premise to wait until class will be changed

$(this).toggleClass('clicked').promise().done(function(){
    alert('a');
});
发布评论

评论列表(0)

  1. 暂无评论