使用jq的toggle函数实现全选功能遇到的问题

2019独角兽企业重金招聘Python工程师标准>>> hot3.png

      今天做网站后台管理的时候,要实现一个单选全选的功能,很简单的功能,不过,遇到了一个很诡异的问题,写出来跟大家分享下。

      功能就不赘述了,大家都懂,最初打算使用jq的toggle函数来绑定两个处理方法,一个实现全选,一个取消全选。


$("input[data-id='checkall']").toggle(function(){$("input[type='checkbox'][name='choice']").attr("checked","checked");},function(){$("input[type='checkbox']name='choice']").removeAttr("checked");}
)
         本以为到这这样就完成了,不过,后来测试的时候,神奇的bug发生了。


 

        红色框框标记的那个复选框,无论如何都选不上,其他复选框倒是正常,各种纠结、折腾,最终决定去看看jq的源码,是不是toggle这个函数有神马问题。

     

toggle: function( fn ) {// Save reference to arguments for access in closurevar args = arguments,guid = fn.guid || jQuery.guid++,i = 0,toggler = function( event ) {// Figure out which function to executevar lastToggle = ( jQuery._data( this, "lastToggle" + fn.guid ) || 0 ) % i;jQuery._data( this, "lastToggle" + fn.guid, lastToggle + 1 );// Make sure that clicks stopevent.preventDefault();// and execute the functionreturn args[ lastToggle ].apply( this, arguments ) || false;};// link all the functions, so any of them can unbind this click handlertoggler.guid = guid;while ( i < args.length ) {args[ i++ ].guid = guid;}return this.click( toggler );}

    玄机显现,就是这句event.preventDefault(),导致复选框无法被选中,最后,还是老老实实的加了个自定义属性,用绑定了click事件来实现。

$("input[data-id='checkall']").click(function(){if($(this).attr("is-check") == "0"){$("input[type='checkbox'][name='choice']").attr("checked","checked");$(this).attr("is-check","1");}else{$("input[type='checkbox'][name='choice']").removeAttr("checked");$(this).attr("is-check","0");}});
   

 问题虽然很小,不过略恶心。。。






转载于:https://my.oschina.net/u/1023800/blog/177214

本文来自互联网用户投稿,该文观点仅代表作者本人,不代表本站立场。本站仅提供信息存储空间服务,不拥有所有权,不承担相关法律责任。如若转载,请注明出处:http://www.mzph.cn/news/547189.shtml

如若内容造成侵权/违法违规/事实不符,请联系多彩编程网进行投诉反馈email:809451989@qq.com,一经查实,立即删除!

相关文章

linq to js使用汇总

用途&#xff1a;方便js操作查询json数据。 下载网址&#xff1a;http://jslinq.codeplex.com/ 使用方法&#xff1a;只需要引用linq.js即可。 查询方法&#xff1a; 一、where查询 var myList [{ Name: "Jim", Age: 20 },{ Name: "Kate", Age: 21 },…

GO国内镜像加速模块下载

众所周知&#xff0c;国内网络访问国外资源经常会出现不稳定的情况。 Go 生态系统中有着许多中国 Gopher 们无法获取的模块&#xff0c;比如最著名的 golang.org/x/...。并且在中国大陆从 GitHub 获取模块的速度也有点慢。 因此设置 CDN 加速代理就很有必要了&#xff0c;以下…

JS过滤emoji

function filterEmoji(text){var ranges [\ud83c[\udf00-\udfff], \ud83d[\udc00-\ude4f], \ud83d[\ude80-\udeff]];return text.replace(new RegExp(ranges.join(|), g), );} 如果上述代码不能适用所有情景&#xff0c;适用调用前的字符length和处理后的字符长度去对比&#…

AbstractEndpoint 和 ProtocolHandler

2019独角兽企业重金招聘Python工程师标准>>> AbstractEndpoint 和 ProtocolHandler /** Licensed to the Apache Software Foundation (ASF) under one or more* contributor license agreements. See the NOTICE file distributed with* this work for additiona…

HOG + SVM 实现图片分类(python3)

前言 大家能看到这篇文章&#xff0c;想必对HOG还是有些了解了&#xff0c;那我就不赘述了&#xff0c;其实我自己不太懂&#xff0c;但是还是比刚开始好一些了。下面我的代码是参考这位博主的&#xff1a;点我查看 上面那位博主是用的cifar-10数据集&#xff0c;但是我们的数…

sql无限递归查询

--------------所有子集数据包括自己---------------------CREATE PROCEDURE ALLSONID INTASBEGINWITH CTE AS(SELECT ID,PID,NAME,0 AS LVL FROM TEST1WHERE ID IDUNION ALLSELECT D.ID,D.PID,D.NAME,LVL1 FROM CTE C INNER JOIN TEST1 DON C.ID D.PID)SELECT * FROM CTEEND…

随机过程及其在金融领域中的应用 第三章 习题 及 答案

随机过程及其在金融领域中的应用 第三章 习题 及 答案 本文地址: http://blog.csdn.net/caroline_wendy/article/details/16879515 包含: 1, 2, 5, 15; 第1题: 第2题: 第5题: 第15题: 转载于:https://blog.51cto.com/spikeking/1388002

Fiddler手机抓包(iPhone)

Fiddler不但能截获各种浏览器发出的HTTP/HTTPS请求&#xff0c;也可以截获各种移动设备&#xff08;包括Andriod和IOS&#xff09;发出的HTTP/HTTPS请求。最关键的是&#xff0c;Fiddler还可以断点调试&#xff0c;修改Request和Response&#xff0c;而且即便抓包的是IOS设备&a…

聊聊asp.net中Web Api的使用

扯淡 随着app应用的崛起&#xff0c;后端服务开发的也越来越多&#xff0c;除了很多优秀的nodejs框架之外&#xff0c;微软当然也会在这个方面提供更便捷的开发方式。这是微软一贯的作风&#xff0c;如果从开发的便捷性来说的话微软是当之无愧的老大哥&#xff0c;只是鱼和熊掌…

python脚本去除文件名里的空格

原始文件名里很多空格&#xff0c;写了个python脚本去除文件名里的空格 import osfilepath"image" # 文件目录名 zimulus os.listdir(filepath)for musicname in zimulus:#改目录下的文件名oldmusicpath filepath \\ musicnamenewmusicname musicname.replace( …

plsql查询乱码问题解决

步骤一&#xff1a;新建变量&#xff0c;设置变量名&#xff1a;NLS_LANG&#xff0c;变量值&#xff1a;SIMPLIFIED CHINESE_CHINA.ZHS16GBK&#xff0c;确定即可&#xff1b; 步骤二&#xff1a; 退出plsql&#xff0c;重新登陆plsql。输入sql语句&#xff0c;执行&#xff0…

eclipse打开文件所在目录

设置 添加扩展工具&#xff0c;添加步骤如下&#xff1a; Run-->External Tools-->External Tools Configurations... new 一个 programlocation 里面填 &#xff1a;C:/WINDOWS/explorer.exeArguments 里面填: ${container_loc}设置完成之后&#xff0c;选择文件&#…

python saml2 认证实例程序demo

# pip install pysaml2 from saml2.client import Saml2Client from saml2.config import Config as Saml2Configmetadata_filepath acs_endpoint_url entity_id# 获取跳转网址 saml_settings {metadata: {local: [authenticator_self.metadata_filepath]}, service: {sp: {end…

找回Kitkat的AppOps

2019独角兽企业重金招聘Python工程师标准>>> How to invoke AppOps in Android 4.4 KITKAT % adb shell am start -n com.android.settings/com.android.settings.Settings \ -e :android:show_fragment com.android.settings.applications.AppOpsSummary \ --activ…

检索COM类工厂中CLSID为{00024500-0000-0000-C000-000000000046}的组件时失败

具体解决方法如下: 1:在服务器上安装office的Excel软件&#xff1b; 2:在"开始"->"运行"中输入dcomcnfg.exe启动"组件服务"&#xff1b; 3:依次双击"组件服务"->"计算机"->"我的电脑"->"DCOM…

win2003 sp2+iis 6.0上部署.net 2.0和.net 4.0网站的方法

网站环境 IIS6.0,操作系统Windows server2003 sp2,服务器之前已经部署了.net 2.0和asp的网站,现在要部署新开发的.net 4.0网站.本来认为很简单&#xff0c;却遇到了很多问题&#xff0c;下面详细描述下过程&#xff1a; 1.官网下载.net framework4.0,下载地址:http://www.micro…

python+opencv实现机器视觉基础技术(2)(宽度测量,缺陷检测,医学检测

本篇博客接着讲解机器视觉的有关技术和知识。包括宽度测量&#xff0c;缺陷检测&#xff0c;医学处理。 一&#xff1a;宽度测量 在传统的自动化生产中&#xff0c;对于尺寸的测量&#xff0c;典型的方法就是千分尺、游标卡尺、塞尺等。而这些测量手段测量精度低、速度慢&…

web api添加拦截器

实现思路 1.标识控制器有拦截特性&#xff1b; 2.控制器拦截处理&#xff1b; 代码实现 1.标识控制器有拦截特性&#xff0c;代码&#xff1a; [MyFilter]public string PostFindUser([FromBody]Userinfo user){return string.Format("{0}是好人~", user.Name);}…

map 与 unordered_map

两者效率对比&#xff1a; #include <iostream> #include <string> #include <map> #include <unordered_map> #include <sys/time.h> #include <list>using namespace std;template<class T> void fun(const T& t, int sum) {f…

YOLO v3 安装并训练自己数据

文章目录 1. 安装1.1 模型安装1.2 运行Demo2.训练自己的数据集2.1数据集准备2.2修改配置文件2.2.1修改cfg/voc.data2.2.2修改data/voc.names2.2.3修改cfg/yolo-voc.cfg2.3 训练3. 测试3.1 单张图像测试3.2多张图像测试3.3 测试数据集测试mAP、recall等参数命令参数总结训练模型…