Javascript 如何选中复选框(就像手动选中)

Javascript 如何选中复选框(就像手动选中),javascript,jquery,checkbox,Javascript,Jquery,Checkbox,我有一个包含类复选框的复选框列表。将不同的任务分配给不同的复选框。单击一个复选框可执行某些操作,单击另一个复选框可执行其他操作 现在我想做一个复选框,它应该将所有带有类复选框的复选框标记为选中。 因此,我创建了一个新的复选框,并使用以下代码标记所有其他复选框 $(".checkbox").prop('checked', true); 它确实标记了我的所有复选框,但问题是它不会启动与这些复选框关联的事件和函数 怎么做 这是完整的代码 $("#check_all").change(function

我有一个包含类复选框的复选框列表。将不同的任务分配给不同的复选框。单击一个复选框可执行某些操作,单击另一个复选框可执行其他操作

现在我想做一个复选框,它应该将所有带有类复选框的复选框标记为选中。 因此,我创建了一个新的复选框,并使用以下代码标记所有其他复选框

$(".checkbox").prop('checked', true);
它确实标记了我的所有复选框,但问题是它不会启动与这些复选框关联的事件和函数

怎么做

这是完整的代码

$("#check_all").change(function(){

    //If it was checked
    if($(this).prop('checked') == true){
        $(".checkbox").prop('checked', true);           
    }

    //If it was unchecked
    else {
        $(".checkbox").prop('checked', false);
    }
});
您可以触发单击事件:


做你需要做的事情的一个简单方法是:

$('#checkAll').on('click', function()
{
    var all;
    if (this.checked)
        all = $('.checkbox').not(':checked');
    else
        all = $('.checkbox:checked');
    all.prop('checked',this.checked);
});
正如你所看到的,它是有效的

它的工作原理很简单:

this.checked告诉我check all元素的检查状态是什么。如果选中,则未选中的其他复选框应更改状态。如果this.checked为false,我必须取消选中所有复选框。 这意味着我必须使用两种不同的选择方法:$'.checkbox:checked'提供所有选中的元素,而$'.checkbox'.not':checked'提供站点


我只需将主控件$'checkAll'元素的检查状态传递给$.prop方法,即可更新所选元素:

try$.list.triggerchange@EliasVanOotegem是吗?这有什么意义?@AnoopJoshi it勾选/取消勾选复选框,但没有引发任何事件有人能解释为什么有3张反对票吗?我没有提供活动的细节,因为活动太多了。AJAX、排序、排序等$this.prop'checked'是this.checked的一个冗余版本。如果$'check\u all'错误地被赋予了.checkbox类,或者如果某个其他代码段将事件侦听器绑定到click事件,并绑定到任何一个.checkbox元素,该怎么办?为什么还要点击这些元素?@EliasVanOotegem根据我的个人经验,当我改变复选框的状态时,我想触发与点击它完全相同的事件。否则你必须手动触发特定的事件我不知道任何有问题的事件
$('#checkAll').on('click', function()
{
    var all;
    if (this.checked)
        all = $('.checkbox').not(':checked');
    else
        all = $('.checkbox:checked');
    all.prop('checked',this.checked);
});