• 事件的循环绑定


    全部代码:

    <!DOCTYPE HTML">
    <html>
        <head>
            <meta http-equiv="Content-Type" content="text/html; charset=iso-8859-1">
            <title>事件的循环绑定</title>
            <style>
                
                ul {
                    background: #ccc;
                    padding: 10px;
                }
                
                ul li {
                    margin: 15px;
                    background: #84cf39;
                    color: #fff;
                    list-style: none;
                    padding: 5px;
                }
            </style>
            <script type="text/javascript">
                
                var $ = function(elmID){
                    return document.getElementById(elmID);
                }
                window.onload = function(){
                
                    var listOne = $('listOne').getElementsByTagName('li');
                    var listTwo = $('listTwo').getElementsByTagName('li');
                    
                    var resultCon = document.getElementsByTagName('div')[0].getElementsByTagName('span')[0];
                    function Fn(num){
                    
                        this.fn = function(){
                            resultCon.innerHTML = 'listOne-' + num;
                        };
                    }
                    
                    for (var i = 0; i < listOne.length; i++) {
                    
                        var f = new Fn(i);
                        listOne[i].onclick = f.fn;
                    }
                    
                    for (var i = 0; i < listTwo.length; i++) {
                    
                        listTwo[i].onclick = function(){
                            var _i = i;
                            return function(){
                                resultCon.innerHTML = 'listTwo-' + _i;
                            }
                        }();
                        
                    }
                }
            </script>
        </head>
        <body>
            利用new来形成闭包做循环绑定
            <ul id="listOne">
                <li>
                    baby
                </li>
                <li>
                    honey
                </li>
            </ul>
            利用匿名函数形成闭包
            <ul id="listTwo">
                <li>
                    baby
                </li>
                <li>
                    honey
                </li>
            </ul>
            <div>
                result:<span></span>
            </div>
        </body>
    </html>
    

      利用new对象的方法绑定:

                    function Fn(num){
                    
                        this.fn = function(){
                            resultCon.innerHTML = 'listOne-' + num;
                        };
                    }
                    
                    for (var i = 0; i < listOne.length; i++) {
                    
                        var f = new Fn(i);
                        listOne[i].onclick = f.fn;
                    }

    利用闭包的方式绑定

                    for (var i = 0; i < listTwo.length; i++) {
                    
                        listTwo[i].onclick = function(){
                            var _i = i;
                            return function(){
                                resultCon.innerHTML = 'listTwo-' + _i;
                            }
                        }();
                        
                    }
    

      

  • 相关阅读:
    如何让json_decode解码变的更加强壮
    scp命令
    Centos7安装postgresql
    ubuntu安装Java环境
    ubuntu开放端口
    VMware安装Ubuntu
    redis主从安装
    redis主从学习
    redis集群学习
    C++ 09 顺序容器
  • 原文地址:https://www.cnblogs.com/longze/p/3363918.html
Copyright © 2020-2023  润新知