Javascript 切换函数在jQuery 1.9.1中按预期工作+
我正在使用jQuery选择复选框列表。我使用的代码如下所述:Javascript 切换函数在jQuery 1.9.1中按预期工作+,javascript,jquery,html,Javascript,Jquery,Html,我正在使用jQuery选择复选框列表。我使用的代码如下所述: $(document).ready(function(){ $('.check:button').toggle(function(){ $('input:checkbox').attr('checked','checked'); $(this).val('uncheck all') },function(){ $('input:checkbox').removeAttr(
$(document).ready(function(){
$('.check:button').toggle(function(){
$('input:checkbox').attr('checked','checked');
$(this).val('uncheck all')
},function(){
$('input:checkbox').removeAttr('checked');
$(this).val('check all');
})
})
它在小提琴上工作,但不是在我的网站上,按钮消失了。然后我看到fiddle使用的是1.4.4版,而我的站点使用的是2.1.1版。在玩了小提琴之后,我发现只有在jQuery版本1.8.3及更低版本中,select才起作用。1.8.3和1.9.2之间发生了什么变化?如何修改此代码以使其适用于我的版本?以下是一种可能的解决方法,供您在新版本中使用,以尽可能保持原始代码的完整性
请注意,您还必须使用prop而不是attr来设置checked。这里有一个可能的解决方法,供您在新版本中使用,以尽可能保持原始代码的完整性
请注意,您还必须使用prop而不是attr来设置checked。正如我在评论中向您展示的那样,您提到的jQuery版本中有很多更改。您可以使用jQuery团队制作的jQuery迁移插件来帮助解决更改问题,但简而言之,您可以将代码归结为: $“.检查”。单击函数{ $'input:checkbox'.prop'checked',!$'input:checkbox'.prop'checked'; $this.val$this.val=='uncheck all'?'check all':'uncheck all' } 复选框1 复选框2
复选框3正如我在评论中向您展示的那样,您提到的jQuery版本中有很多变化。您可以使用jQuery团队制作的jQuery迁移插件来帮助解决更改问题,但简而言之,您可以将代码归结为: $“.检查”。单击函数{ $'input:checkbox'.prop'checked',!$'input:checkbox'.prop'checked'; $this.val$this.val=='uncheck all'?'check all':'uncheck all' } 复选框1 复选框2 复选框3来自jQuery 1.9以上 您可以通过使用一个简单变量来跟踪状态来恢复功能:
$(document).ready(function(){
var state = 1;
$('.check:button').click(function(){
if (state) {
$('input:checkbox').attr('checked','checked');
$(this).val('uncheck all')
} else {
$('input:checkbox').removeAttr('checked');
$(this).val('check all');
}
state = !state;
});
});
从jquery1.9以上开始
您可以通过使用一个简单变量来跟踪状态来恢复功能:
$(document).ready(function(){
var state = 1;
$('.check:button').click(function(){
if (state) {
$('input:checkbox').attr('checked','checked');
$(this).val('uncheck all')
} else {
$('input:checkbox').removeAttr('checked');
$(this).val('check all');
}
state = !state;
});
});
还有一个可能的解决方法: $。选中:按钮。单击函数{ var toggled=this.value==‘全部检查’; $输入:复选框'.prop'checked',切换; this.value=切换为“全部取消选中”:“全部选中”; }; 复选框1 复选框2
复选框3还有一种可能的解决方法: $。选中:按钮。单击函数{ var toggled=this.value==‘全部检查’; $输入:复选框'.prop'checked',切换; this.value=切换为“全部取消选中”:“全部选中”; }; 复选框1 复选框2
复选框3:注意:此方法签名在jQuery 1.8中被弃用,在jQuery 1.9中被删除。您可以使用jQuery迁移插件来运行弃用的函数::注意:此方法签名在jQuery 1.8中被弃用,在jQuery 1.9中被删除。您可以使用jQuery迁移插件来运行弃用的函数:attr在翻转属性在翻转后将无法继续工作。如果您手动选中/取消选中,然后点击按钮,这将与预期相反。@smerny true。如果这是OP的一个问题,那么一个简单的布尔值将解决它。如果您手动选中/取消选中,然后点击按钮,这将与预期相反。@smerny true。如果这是OP的一个问题,那么一个简单的布尔运算就能解决它