attachEvent带参数函数调用问题

本文探讨了两种JavaScript中为checkbox元素绑定点击事件的方法:一种使用闭包返回事件处理函数,另一种直接在事件绑定中定义处理函数。通过比较这两种方法,分析了它们之间的差异及可能导致调试困难的原因。

摘要生成于 C知道 ,由 DeepSeek-R1 满血版支持, 前往体验 >

方案一与方案二区别是什么?

方案一:

var obj_input = document.getElementsByTagName("input");
     for(var i=0; i<obj_input.length; i++){
         if(obj_input[i].type.toLowerCase() == 'checkbox'){
             var obj_ev = function(obj_chk){
                 return function(){
                     onRowClick(obj_chk);
                 }
             }
          if(typeof obj_input[i].addEventListener != "undefined"){
                  obj_input[i].addEventListener( 'click', obj_ev(obj_input[i]), false);
             }else if ( typeof obj_input[i].attachEvent != "undefined" ) {
                  obj_input[i].attachEvent('onclick',obj_ev(obj_input[i]));
             }
         }
     }

方案二:

var obj_input = document.getElementsByTagName("input");
     for(var i=0; i<obj_input.length; i++){
         if(obj_input[i].type.toLowerCase() == 'checkbox'){
             if(typeof obj_input[i].addEventListener != "undefined"){
                  obj_input[i].addEventListener( 'click', function(){onRowClick(obj_input[i].)}, false);
             }else if ( typeof obj_input[i].attachEvent != "undefined" ) {
                  obj_input[i].attachEvent('onclick',function(){onRowClick(obj_input[i].)});
             }
         }
     }

自己感觉是一样的,可能调试过程中,方案一是调试可以通过,可方案二怎么也通不过

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

当前余额3.43前往充值 >
需支付:10.00
成就一亿技术人!
领取后你会自动成为博主和红包主的粉丝 规则
hope_wisdom
发出的红包
实付
使用余额支付
点击重新获取
扫码支付
钱包余额 0

抵扣说明:

1.余额是钱包充值的虚拟货币,按照1:1的比例进行支付金额的抵扣。
2.余额无法直接购买下载,可以购买VIP、付费专栏及课程。

余额充值