Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/87.json): failed to open stream: No such file or directory in /data/phpspider/zhask/libs/function.php on line 167

Warning: Invalid argument supplied for foreach() in /data/phpspider/zhask/libs/tag.function.php on line 1116

Notice: Undefined index: in /data/phpspider/zhask/libs/function.php on line 180

Warning: array_chunk() expects parameter 1 to be array, null given in /data/phpspider/zhask/libs/function.php on line 181
Javascript 切换函数在jQuery 1.9.1中按预期工作+_Javascript_Jquery_Html - Fatal编程技术网

Javascript 切换函数在jQuery 1.9.1中按预期工作+

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(

我正在使用jQuery选择复选框列表。我使用的代码如下所述:

$(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的一个问题,那么一个简单的布尔运算就能解决它