JQuery toggleClass() 复选框未选中
JQuery toggleClass() checkbox unchecked
您好,请检查以下代码 -
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 将删除并且复选框也将取消选中。
谢谢。
对不起我的英文措辞。 :(
$.toggleClass
没有回调函数。它不是异步函数,因此您可以将 $('.chk').prop('checked', true);
移动到下一条语句并切换 class:
$(this).toggleClass('clicked');
$('.chk').prop('checked', true);
试试这个:
$('.manage-user-freind').on('click', function() {
$(this).toggleClass('clicked').find('.chk').prop('checked', $(this).hasClass('clicked'));
});
据此:jquery function on toggleClass complete?
你可以使用前提等到 class 被更改
$(this).toggleClass('clicked').promise().done(function(){
alert('a');
});
要选中和取消选中,此代码应该有效:
$('.manage-user-freind').click(function(){
$(this).toggleClass('clicked');
var checkbox = $(this).find('.chk');
checkbox.prop('checked', !checkbox.prop("checked"));
});
这是一个Fiddle.
您好,请检查以下代码 -
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 将删除并且复选框也将取消选中。
谢谢。
对不起我的英文措辞。 :(
$.toggleClass
没有回调函数。它不是异步函数,因此您可以将 $('.chk').prop('checked', true);
移动到下一条语句并切换 class:
$(this).toggleClass('clicked');
$('.chk').prop('checked', true);
试试这个:
$('.manage-user-freind').on('click', function() {
$(this).toggleClass('clicked').find('.chk').prop('checked', $(this).hasClass('clicked'));
});
据此:jquery function on toggleClass complete?
你可以使用前提等到 class 被更改
$(this).toggleClass('clicked').promise().done(function(){
alert('a');
});
要选中和取消选中,此代码应该有效:
$('.manage-user-freind').click(function(){
$(this).toggleClass('clicked');
var checkbox = $(this).find('.chk');
checkbox.prop('checked', !checkbox.prop("checked"));
});
这是一个Fiddle.