您好请检查以下代码 -
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;
}
我使用过toggleClass()函数。 toggleClass
工作正常,但点击的所有复选框也未取消选中当前复选框。
我需要当我点击任何div时首先显示div为黄色并选中当前复选框。再次单击该黄色颜色div将删除,并且复选框将取消选中。
感谢。
对不起我的英文措辞。 :(
答案 0 :(得分:5)
试试这个:
$('.manage-user-freind').on('click', function() {
$(this).toggleClass('clicked').find('.chk').prop('checked', $(this).hasClass('clicked'));
});
答案 1 :(得分:4)
$.toggleClass
没有回调函数。它不是异步函数,因此您可以将$('.chk').prop('checked', true);
移动到切换类的下一个语句:
$(this).toggleClass('clicked');
$('.chk').prop('checked', true);
答案 2 :(得分:2)
要检查和取消选中,此代码应该有效:
$('.manage-user-freind').click(function(){
$(this).toggleClass('clicked');
var checkbox = $(this).find('.chk');
checkbox.prop('checked', !checkbox.prop("checked"));
});
这是Fiddle.
答案 3 :(得分:0)
根据这个:jquery function on toggleClass complete?
您可以使用前提等待课程改变
$(this).toggleClass('clicked').promise().done(function(){
alert('a');
});