inline onclick代码如下:
btnOKClick的代码:
alert("btnOK Clicked");
}
现在要在点击按钮以后,移除onclick事件,并为按钮绑定一个新的click事件。在第二次点击时候,就开始执行第二个事件处理函数,第二个处理函数的代码:
reclick的代码:
alert('reclick');
}
思路:在btnOKClick中移除onclick,然后添加新的绑定,代码如下:
加上这段代码后的btnOKClick方法如下:
alert("btnOK Clicked");
$('#btnOK').attr('onclick', '').bind('click', function () { reclick(); });
}
这种方法在Google Chrome下正常工作,但是在IE的兼容模式下会马上调用reclick方法,这不是我们想要的效果。
出现这种效果的原因貌似是因为onclick执行完了以后,IE回去查看是否有绑定在click上的handler,结构是有的,于是就马上执行了。
为了解决这个问题,我们可以换个思路,就是延迟绑定click事件。具体的代码如下:
alert("btnOK Clicked");
setTimeout(function () {
$('#btnOK').attr('onclick', '').bind('click', function () { reclick(); });
}, 1);
}
这里使用了setTimeout定时器,在定时器触发以后,才执行移除onclick属性,绑定click handler的代码。
经测试,在IE9的兼容模式和非兼容模式下都可以正常运行;Google Chrome也正常运行。
本文链接
- 开发者必备的8个最佳云端集成开发环境
- 史上最有创意的 404 页面设计作品集锦
- 让人爱不释手的13套精美Web图标素材
- 45款唯美的苹果 iOS 应用程序图标设计
- 分享25套非常漂亮的免费网页图标素材
Web Lab 由五个 Chrome 实验装置组成,展现互联网给生活带来的非凡变化,让世人体验 Web 的神奇!这些装置在伦敦科学博物馆进行了长达一年的展出,任何地方、任何人都可以通过 chromeweblab.com 和这些装置互动。到底是什么东西呢?赶紧来瞧瞧。
围观地址:http://www.chromeweblab.com
实验一:Universal Orchestra
实验二:Teleporter
实验三:Sketchbots
实验四:Data Tracer
实验五:Lab Tag Explorer
您可能感兴趣的相关文章
- 2012年最佳 Web 前端开发工具和框架
- 分享21款丰富多彩的 HTML5 网页游戏
- 推荐10款优秀的 HTML5 在线设计工具
- 45个激发灵感的 HTML5 网站设计作品
- 29款基于 HTML 5 Canvas 的网页游戏
本文来源:Web Lab——鼓舞人心的谷歌 Chrome Web 实验室
文章来源:梦想天空 ◆ 关注Web前端开发技术 ◆ 分享网页设计资源
本文链接
一忙起来,什么技术文章都懒得写。但最大的谎言就是“i will remember it,i don't need to write it down”
好吧,还是记录点儿什么吧,虽然凌乱些,也是闪亮的小知识点。
1、IE8之前 闭包 慎重慎重再慎重!很多文章都讲闭包的原理,却从来没有深究 没有被内部函数使用的外部作用域变量是否被垃圾回收了呢。如下代码
var big1=123,
big2="";
~function(){
alert(big1);
}();
}();
big1由于闭包,不会被垃圾回收器回收这是毋庸置疑的。big2呢?了解闭包的原理都知道 所谓闭包 其实是因为内部函数的scope链引用了外部函数作用域上的活动对象使得内部函数可以直接引用外部函数的局部变量,而正是这些局部变量被引用因此他们不会被垃圾回收。从这种定义来看big2是不会被释放的(不光是big2,外部函数所有局部变量都不会回收)。是的,而且IE8- 和opera都很实在的按照这样做的。但这样合理吗 显然是不合理的。因此谷歌和火狐的垃圾回收机制都做了优化。经过实践证明 没被引用的闭包变量仍然会被释放。IE9也开始可以了。
不过不管怎样,使用闭包时一定要慎重。一些开销比较大的变量要及时set null提醒垃圾回收器回收。
本文链接