今天在做程序的过程中,遇到一个问题,就是处理修改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. });
经过修改后的代码如下:
//弹出添加device窗体 function addDevice(){ win.window('open'); form.form('clear'); $('#btn-save').unbind('click').removeAttr('onclick').click( function(){ form.form('submit',{ url:"/moon/device/device.do?method=addDevices", onSubmit:function(){}, success:function(data){ eval('data='+data); if (data.success){ grid.datagrid('reload'); win.window('close'); } else { $.messager.alert('错误',data.msg,'error'); } } }); } ); }
修改的代码如下:
function editDevice(){ var row = grid.datagrid('getSelected'); if (row){ win.window('open'); form.form('load', '/moon/device/device.do?method=getDevicesById&id='+row.id); $('#btn-save').unbind('click').removeAttr('onclick').click( function(){ form.form('submit',{ url:'/moon/device/device.do?method=updateDevice&id='+row.id, onSubmit:function(){}, success:function(data){ eval('data='+data); if (data.success){ grid.datagrid('reload'); win.window('close'); } else { $.messager.alert('错误',data.msg,'error'); } } }); } ); }else{ $.messager.show({ title:'警告', msg:'请先选择要修改的记录。' }); } }
修改后界面如下
可以实现CRUD操作了!!!