关于事件触发的一个小tips
2013-07-03 10:32
302 查看
今天看到如下代码
此处$('#hotelHotTd a').each()部分代码引用了两次;
当时很奇怪,
Q:上面明明已经绑定了相关的事件,下面使用直接触发不就可以了吗?
A: 由于事件的触发会触发全部绑定了此事件的动作,作为主动触发的动作,在触发时很有可能其他绑定了该事件的代码还没有准备好相关的条件,就一同被动触发了;这就会有可能造成业务逻辑的混乱,从而产生错误。
结论:被动触发的事件,使用事件绑定的方式触发。主动触发的事件,应该写代码主动触发,而不绑定事件的方式触发。
window.globalEvent.bind('hotelHotTableRendered', function () { $('#hotelHotTd a').each(function () { var $this = $(this); $this.attr('href', $this.attr('href') + trace.generate()); }); }); $('#hotelHotTd a').each(function () { var $this = $(this); $this.attr('href', $this.attr('href') + trace.generate()); });
此处$('#hotelHotTd a').each()部分代码引用了两次;
当时很奇怪,
Q:上面明明已经绑定了相关的事件,下面使用直接触发不就可以了吗?
A: 由于事件的触发会触发全部绑定了此事件的动作,作为主动触发的动作,在触发时很有可能其他绑定了该事件的代码还没有准备好相关的条件,就一同被动触发了;这就会有可能造成业务逻辑的混乱,从而产生错误。
结论:被动触发的事件,使用事件绑定的方式触发。主动触发的事件,应该写代码主动触发,而不绑定事件的方式触发。
相关文章推荐
- 关于Listbox的 SelectionChanged 事件 (同一个Item只触发一次问题)
- 关于JQ对checkbox的click事件触发的一个坑
- 关于JComboBox触发事件总是执行两次的问题
- 如何在HttpWebRequest 里面去触发一个页面的单击事件
- 关于ASP.net TextBox控件的失去焦点后触发其它事件
- 关于摸态窗口,触发服务器事件会打开新页面的问题
- 当IE中只有一个文本框,并在文本框上点击回车时,表单的submit事件会触发
- 【厉害了FPGA】Verilog和VHDL对于一个always块或者一个process下的多个边沿触发事件处理
- 关于touch事件的使用 (touchStart touchMove touchEnd(不触发 android 4.0以上)) 滑动的使用
- 关于处理某一个事件需要关联多个事件或表的情况下,一些思考
- Native和html5的交互(一)h5传数据or触发一个Android的事件
- c#中在一个窗体中触发另一个窗体的事件
- 关于form提交表单和onclick事件的触发
- input框 长度每变化一次触发一个事件
- 在自定义控件内触发一个事件改变其他表单元素的值
- 关于.Net WinForm 中的控件失去焦点时触发事件的问题
- js 导致事件委托触发事件失败的一个问题
- 用js触发自动一个click事件
- 如何点击一个按钮 分别触发两个jquery事件
- 关于动态加载控件 事件触发的问题