jquery移除button的inline onclick事件
2023-09-14 09:00:58 时间
inline onclick代码如下:
input type="button" id="btnOK" name="" value="确定" onclick="btnOKClick();" /
btnOKClick的代码:
function btnOKClick() { alert("btnOK Clicked"); }
现在要在点击按钮以后,移除onclick事件,并为按钮绑定一个新的click事件。在第二次点击时候,就开始执行第二个事件处理函数,第二个处理函数的代码:
reclick的代码:
function reclick() { alert(reclick); }
思路:在btnOKClick中移除onclick,然后添加新的绑定,代码如下:
$(#btnOK).attr(onclick, ).bind(click, function () { reclick(); });
加上这段代码后的btnOKClick方法如下:
function btnOKClick() { alert("btnOK Clicked"); $(#btnOK).attr(onclick, ).bind(click, function () { reclick(); }); }
这种方法在Google Chrome下正常工作,但是在IE的兼容模式下会马上调用reclick方法,这不是我们想要的效果。
出现这种效果的原因貌似是因为onclick执行完了以后,IE回去查看是否有绑定在click上的handler,结构是有的,于是就马上执行了。
为了解决这个问题,我们可以换个思路,就是延迟绑定click事件。具体的代码如下:
![复制代码](http://common.cnblogs.com/images/copycode.gif)
function btnOKClick() { alert("btnOK Clicked"); setTimeout(function () { $(#btnOK).attr(onclick, ).bind(click, function () { reclick(); }); }, 1); }
![复制代码](http://common.cnblogs.com/images/copycode.gif)
这里使用了setTimeout定时器,在定时器触发以后,才执行移除onclick属性,绑定click handler的代码。
经测试,在IE9的兼容模式和非兼容模式下都可以正常运行;Google Chrome也正常运行。
来源:http://youring2.cnblogs.com/ 声明:本博客原创文字只代表本人工作中在某一时间内总结的观点或结论,与本人所在单位没有直接利益关系。非商业,未授权,贴子请以现状保留,转载时必须保留此段声明,且在文章页面明显位置给出原文连接。 转载:http://www.cnblogs.com/youring2/archive/2013/01/25/2876514.html
相关文章
- jQuery 事件(三) 事件的绑定和解绑、对象的使用、自定义事件
- jQuery事件详解编程语言
- jquery on绑定事件叠加解决方法详解编程语言
- jQuery事件是什么?
- jQuery ready事件的4种写法
- jQuery off()方法解除绑定事件
- jQuery相关控件的事件操作分解
- 扩展jQuery键盘事件的几个基本方法
- jquery中获得$.ajax()事件返回的值并添加事件的方法
- jquery下onpropertychange事件的绑定方法
- 基于jquery的loading效果实现代码
- jQuery'行4954错误:不支持该属性或方法'的问题解决方法
- jquery键盘事件介绍
- jquery的键盘事件修改代码
- 基于Jquery的文字自动截取(提供源代码)
- 推荐17个优美新鲜的jQuery的工具提示插件
- jquery移除button的inlineonclick事件(已测试及兼容浏览器)
- 探讨在JQuery和Js中,如何让ajax执行完后再继续往下执行
- jquery实现按Enter键触发事件示例
- JQuery事件e参数的方法preventDefault()取消默认行为
- jquery$.fn$.fx是什么意思有什么用
- jquery图片缩放拖动的简单实例
- jquery新的绑定事件机制on方法的使用方法
- jquery+php实现搜索框自动提示