使用jquery动态修改dom元素属性在IE下的问题

本文介绍了解决在Internet Explorer中使用jQuery动态修改click事件时遇到的问题。通过使用.unbind()和.click()方法替代.attr('onclick'),确保了跨浏览器的兼容性。

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

今天在做程序的过程中,遇到一个问题,就是处理修改click属性的时候出现的,当使用jquery动态的修改onclick属性的时候,有的时候会出现不好用的情况 
于是到网上找到了对应的解决方案 

Js代码 复制代码 

   1. $(“#some_element”).attr(‘onclick’,"//some new operation");   

$(“#some_element”).attr('onclick',"//some new operation"); 

  但是这段代码在FireFox下会按我们的意图正确执行,但是在IE下什么动静都没有。关于问题的描述,可以参考:

  http://www.nabble.com/onClick-prepend-td15194791s27240.html 

  http://ajaxian.com/archives/evaling-with-ies-windowexecscript 

  解决的方法也很简单: 
Js代码 复制代码 

   1. $(“#some_element”).unbind(‘click’).removeAttr(‘onclick’).click(function(){   
   2. //new operation  
   3. });   

经过修改后的代码如下: 
Java代码   收藏代码
  1. //弹出添加device窗体    
  2.     function addDevice(){  
  3.         win.window('open');  
  4.         form.form('clear');  
  5.         $('#btn-save').unbind('click').removeAttr('onclick').click(  
  6.             function(){  
  7.                 form.form('submit',{  
  8.                     url:"/moon/device/device.do?method=addDevices",  
  9.                     onSubmit:function(){},  
  10.                     success:function(data){  
  11.                         eval('data='+data);  
  12.                         if (data.success){  
  13.                             grid.datagrid('reload');  
  14.                             win.window('close');  
  15.                         } else {  
  16.                             $.messager.alert('错误',data.msg,'error');  
  17.                         }  
  18.                     }  
  19.                 });  
  20.             }  
  21.         );  
  22.     }  


修改的代码如下: 
Java代码   收藏代码
  1. function editDevice(){  
  2.             var row = grid.datagrid('getSelected');  
  3.             if (row){  
  4.                 win.window('open');  
  5.                 form.form('load''/moon/device/device.do?method=getDevicesById&id='+row.id);  
  6.                 $('#btn-save').unbind('click').removeAttr('onclick').click(  
  7.                     function(){  
  8.                         form.form('submit',{  
  9.                             url:'/moon/device/device.do?method=updateDevice&id='+row.id,  
  10.                             onSubmit:function(){},  
  11.                             success:function(data){  
  12.                                 eval('data='+data);  
  13.                                 if (data.success){  
  14.                                     grid.datagrid('reload');  
  15.                                     win.window('close');  
  16.                                 } else {  
  17.                                     $.messager.alert('错误',data.msg,'error');  
  18.                                 }  
  19.                             }  
  20.                         });  
  21.                     }  
  22.                 );  
  23.             }else{  
  24.                 $.messager.show({  
  25.                     title:'警告',   
  26.                     msg:'请先选择要修改的记录。'  
  27.                 });  
  28.             }  
  29.         }  


修改后界面如下 



可以实现CRUD操作了!!! 

转载于:https://www.cnblogs.com/Code-Engineering/archive/2012/11/17/5745464.html

评论
添加红包

请填写红包祝福语或标题

红包个数最小为10个

红包金额最低5元

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

抵扣说明:

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

余额充值