Warning: file_get_contents(/data/phpspider/zhask/data//catemap/9/javascript/435.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

Warning: file_get_contents(/data/phpspider/zhask/data//catemap/2/jquery/89.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选中和取消选中复选框_Javascript_Jquery - Fatal编程技术网

Javascript 使用Jquery选中和取消选中复选框

Javascript 使用Jquery选中和取消选中复选框,javascript,jquery,Javascript,Jquery,我正在尝试选中一个复选框,如果未选中,则取消选中。如果未选中,它将进行检查-如果选中“是”,则不会取消选中。很奇怪。提前谢谢 这是我的密码: 编辑:以下是JSFIDLE: JS: HTML: 复选框 使用: 使用: 我认为触发点击事件会改变复选框的选中状态 $(':checkbox').hover(function() { $(this).trigger('click'); }); 我认为触发点击事件会改变复选框的选中状态 $(':checkbox').hover(function()

我正在尝试选中一个复选框,如果未选中,则取消选中。如果未选中,它将进行检查-如果选中“是”,则不会取消选中。很奇怪。提前谢谢

这是我的密码:

编辑:以下是JSFIDLE:

JS:

HTML:

复选框
使用:

使用:


我认为触发点击事件会改变复选框的选中状态

$(':checkbox').hover(function() {
  $(this).trigger('click'); 
});

我认为触发点击事件会改变复选框的选中状态

$(':checkbox').hover(function() {
  $(this).trigger('click'); 
});
.is()
.not()
不一样

.is()
返回true或false,而
返回.not()
如果jQuery元素匹配,则删除它

因此,
$(选择器).not()
将始终为true,因为定义了jquery

要检查元素是否存在,请使用
.length

$(':checkbox').hover(function(){
    if($(this).not(':checked').length) {
        $(this).prop('checked', true);
    }
    else if($(this).is(':checked')){
        $(this).prop('checked', false);
    }
})
小提琴:

您也可以使用1号衬里:

$(this).prop('checked', !$(this).prop('checked'));
.is()
.not()
不一样

.is()
返回true或false,而
返回.not()
如果jQuery元素匹配,则删除它

因此,
$(选择器).not()
将始终为true,因为定义了jquery

要检查元素是否存在,请使用
.length

$(':checkbox').hover(function(){
    if($(this).not(':checked').length) {
        $(this).prop('checked', true);
    }
    else if($(this).is(':checked')){
        $(this).prop('checked', false);
    }
})
小提琴:

您也可以使用1号衬里:

$(this).prop('checked', !$(this).prop('checked'));

请注意,输入的名称param需要一个相等的值。另外,悬停错误的事件,除非您指定了一个悬停入和悬停出处理程序,否则函数将继续运行。更容易使用鼠标指针处理程序。只有在悬停开始时才开火。如果您想在鼠标离开时发生其他事情,可以指定鼠标离开。或者,您可以在hover函数中指定两个函数来执行此操作

$(':checkbox').mouseenter(function(){
        if($(this).prop('checked')) {
            $(this).prop('checked', false);
        }
        else{
            $(this).prop('checked', true);
        }

})

请注意,输入的名称param需要一个相等的值。另外,悬停错误的事件,除非您指定了一个悬停入和悬停出处理程序,否则函数将继续运行。更容易使用鼠标指针处理程序。只有在悬停开始时才开火。如果您想在鼠标离开时发生其他事情,可以指定鼠标离开。或者,您可以在hover函数中指定两个函数来执行此操作

$(':checkbox').mouseenter(function(){
        if($(this).prop('checked')) {
            $(this).prop('checked', false);
        }
        else{
            $(this).prop('checked', true);
        }

})

这是工作小提琴,


这是工作小提琴,



试试这个-在悬停状态下这样做是没有意义的,因为一旦你取消悬停/鼠标移出复选框,无论用户的行为如何,复选框都将被取消选中。这有什么意义?@DavidThomas是的-从那时起,我实际上切换到了
.mouseenter
。我会更新代码的。但再说一次:重点是什么?你想做什么?@DavidThomas我管理的一个网站需要对某些任务进行大量的复选框点击,而checkall chrome扩展只允许元素中的all或all,这两者都不起作用。所以我想我应该尝试构建我的第一个chrome扩展来帮助其他有同样问题的人。试试这个——在悬停状态下这样做是没有意义的,因为一旦你取消悬停/鼠标,复选框将始终处于未选中状态,而不管用户的行为如何。这有什么意义?@DavidThomas是的-从那时起,我实际上切换到了
.mouseenter
。我会更新代码的。但再说一次:重点是什么?你想做什么?@DavidThomas我管理的一个网站需要对某些任务进行大量的复选框点击,而checkall chrome扩展只允许元素中的all或all,这两者都不起作用。所以我想我应该尝试构建我的第一个chrome扩展来帮助其他有同样问题的人。这实际上是我尝试的第一个方法,但它不起作用。只需将其插入以重试,无需雪茄。抱歉,但是您的JSFIDLE需要一些拼写错误修复,然后它就可以工作了:但不确定您到底在寻找什么。您正在使用悬停输入/输出处理程序。医生,你可能想要点别的东西这是我第一次尝试的方法,但没有成功。只需将其插入以重试,无需雪茄。抱歉,但是您的JSFIDLE需要一些拼写错误修复,然后它就可以工作了:但不确定您到底在寻找什么。您正在使用悬停输入/输出处理程序。医生,你想要点别的东西我很兴奋因为这样很有效。它选中该框,但不添加属性。尝试将其添加为道具,这再次打破了检查切换。经过再三考虑-它不需要一个可视的
单击的
属性,就所有意图和目的而言都被认为是检查的,对吗?我很兴奋,因为这样做有效。它选中该框,但不添加属性。尝试将其添加为道具,这再次打破了检查切换。经过仔细考虑-它不需要一个可视的
单击的
属性,在所有意图和目的下都被视为检查的权利,对吗?是-这会给您打勾-但我没有看到
checked=“checked”
或只是在元素中选中了一个
属性。@ItamarOKestenbaum您不需要在元素中选中它。看这把小提琴。jquery仍将知道其已选中,http post也将发布它。这让事情变得简单多了。谢谢是-这给了您复选标记-但是我没有在元素中看到
checked=“checked”
或仅仅是
checked
属性。@ItamarOKestenbaum您不需要在元素中进行选中。看这把小提琴。jquery仍将知道其已选中,http post也将发布它。这让事情变得简单多了。谢谢虽然所有其他人都很有帮助,但这一行运行良好。我还了解到,您不必在元素中直观地显示属性,就可以使其生效。这是正确的吗?虽然所有其他人都很有帮助,但这一行运行良好。我还了解到,您不必在元素中直观地显示属性,就可以使其生效。这是正确的吗?