zoukankan      html  css  js  c++  java
  • 用闭包减少代码

    做一个radiolist控制textbox显示隐藏的功能,最初的代码:

    rblSecurityCameras = document.getElementsByName("<%=rblSecurityCameras.UniqueID %>");
            txtSecurityCameras = document.getElementById("<%=txtSecurityCameras.ClientID %>");
    
    
            for (i in rblSecurityCameras) {
                rblSecurityCameras[i].onclick = function(){
                    if (this.value == "2" && this.checked) {
                        txtSecurityCameras.style.display = 'none';
                    }
                    else if (this.value == "1" && this.checked) {
                        txtSecurityCameras.style.display = '';
                    }
    };
                 if (rblSecurityCameras[i].value == "2" && rblSecurityCameras[i].checked) {
                        txtSecurityCameras.style.display = 'none';
                    }
                    else if (rblSecurityCameras[i].value == "1" && rblSecurityCameras[i].checked) {
                        txtSecurityCameras.style.display = '';
                    }
            }

    点击事件和load的过程的代码是相同的,有代码洁癖的我就不干了。

    使用闭包

     1 rblSecurityCameras = document.getElementsByName("<%=rblSecurityCameras.UniqueID %>");
     2         txtSecurityCameras = document.getElementById("<%=txtSecurityCameras.ClientID %>");
     3 
     4         var mm = function(obj, txt) {
     5             return (function() {
     6                 if (obj.value == "2" && obj.checked) {
     7                     txt.style.display = 'none';
     8                 }
     9                 else if (obj.value == "1" && obj.checked) {
    10                     txt.style.display = '';
    11                 }
    12             });
    13         };
    14 
    15         for (i in rblSecurityCameras) {
    16             rblSecurityCameras[i].onclick = mm(rblSecurityCameras[i], txtSecurityCameras);
    17             mm(rblSecurityCameras[i], txtSecurityCameras)();
    18         }
  • 相关阅读:
    Kubernetes 集群日志管理
    登录功能通用测试用例设计
    Linux常用命令大全
    查看Android应用包名、Activity的几个方法
    CentOS 7 下Docker的安装
    Centos7.1下Docker的安装-yum方法
    appium+Java+testng自动化框架搭建-第一季
    Android在Win10环境搭建
    List<Map<String, Integer>> 同key的value全部累加合并
    Restrictions用法
  • 原文地址:https://www.cnblogs.com/405464904/p/3740484.html
Copyright © 2011-2022 走看看