请选择 进入手机版 | 继续访问电脑版

壹柒佰

 找回密码
 立即注册
搜索
查看: 531|回复: 1

高版本Jquery 用事件反复触发checkbox选中只有一次有效的解...

  [复制链接]

70

主题

76

帖子

602

积分

管理员

Rank: 9Rank: 9Rank: 9

积分
602
发表于 2017-1-20 12:59:27 | 显示全部楼层 |阅读模式
场景:

初始状态复选框没有全选,
点击全选按钮调用checkAll方法,
实现了全选,
然后点击全不选按钮,

实现了全不选,

然后再次点击全选按钮,

结果却木有全选,

再反复点击木有任何反应。

  1.        $(function () {
  2.                 $('.quickmenu').click(function () {
  3.                     check = $(this).find('.notification').find('.chkquickmenu');
  4.                     if (check.is(':checked'))
  5.                     {
  6.                         check.attr('checked', false);
  7.                     } else
  8.                     {
  9.                         check.attr('checked', true);
  10.                     }
  11.                 });
  12.             })
复制代码

解决: 用prop代替attr

  1.        $(function () {
  2.                 $('.quickmenu').click(function () {
  3.                     check = $(this).find('.notification').find('.chkquickmenu');
  4.                     if (check.is(':checked'))
  5.                     {
  6.                         check.prop('checked', false);
  7.                     } else
  8.                     {
  9.                         check.prop('checked', true);
  10.                     }
  11.                 });
  12.             })
复制代码

jquery中attr和prop的区别

很明显,attr和prop分别是单词attribute和property的缩写,并且它们均表示"属性"的意思。
不过,在jQuery中,attribute和property却是两个不同的概念。attribute表示HTML文档节点的属性,property表示JS对象的属性。
在jQuery中,prop()函数的设计目标是用于设置或获取指定DOM元素(指的是JS对象,Element类型)上的属性(property);attr()函数的设计目标是用于设置或获取指定DOM元素所对应的文档节点上的属性(attribute)。

回复

使用道具 举报

0

主题

1

帖子

11

积分

禁止发言

积分
11
发表于 2017-2-20 18:36:10 | 显示全部楼层
提示: 作者被禁止或删除 内容自动屏蔽
回复

使用道具 举报

Archiver|手机版|小黑屋|壹柒佰  

GMT+8, 2018-6-23 01:07 , Processed in 0.156908 second(s), 27 queries .

Powered by Discuz! X3.3

© 2001-2017 Comsenz Inc.

在线咨询
关注公众号

扫一扫
获取最新资讯

在线技术支持

扫一扫
在线技术支持

返回顶部