今天看到如下代码

 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: 由于事件的触发会触发全部绑定了此事件的动作,作为主动触发的动作,在触发时很有可能其他绑定了该事件的代码还没有准备好相关的条件,就一同被动触发了;这就会有可能造成业务逻辑的混乱,从而产生错误。

结论:被动触发的事件,使用事件绑定的方式触发。主动触发的事件,应该写代码主动触发,而不绑定事件的方式触发。

关于事件触发的一个小tips的更多相关文章

  1. 修改initrd.img里ko文件的一个小tips

    在经历以下步骤解开initrd.img文件之后: 若file initrd.img 指示initrd.img为gzip文件,则2: mv initrd.img initrd.gz gunzip -d ...

  2. PHP的一个小tips (关于=和==或者===的使用)

    由于我在项目中,很多场景判断等式成立的时候 都习惯把值放在==前面(例如 1 == $nStatus), 今天有个同事揪着我问为啥总这样写,回答之后今天也稍作记录下吧. 如果正常些 $nStatus ...

  3. Unity3D性能优化小tips——把this.transform缓存缓存起来

    Unity3D开发时中有一个小tips,这在官方的文档里其实有提及的,但不那么显眼,这里小说一下: 在MonoBehaviour进行编程时,我们经常会用this.transform, this.gam ...

  4. JavaScript点击事件-一个按钮触发另一个按钮

    <input type="button" value="Click" id="C" onclick="Go();" ...

  5. click([[data],fn]) 触发每一个匹配元素的click事件。

    click([[data],fn]) 概述 触发每一个匹配元素的click事件. 这个函数会调用执行绑定到click事件的所有函数.大理石平台精度等级 参数 fnFunctionV1.0 在每一个匹配 ...

  6. 先定一个小目标,自己封装个ajax

    你是否发现项目中有很多页面只用到了框架不到十分之一的内容,还引了压缩后还有70多kb的jquery库 你是否发现项目中就用了两三个underscore提供的方法,其他大部分的你方法你甚至从来没有看过 ...

  7. 【深入浅出Linux网络编程】 “基础 -- 事件触发机制”

    回顾一下“"开篇 -- 知其然,知其所以然"”中的两段代码,第一段虽然只使用1个线程但却也只能处理一个socket,第二段虽然能处理成百上千个socket但却需要创建同等数量的线程 ...

  8. C# (事件触发)回调函数,完美处理各类疑难杂症!

    每次写博客,第一句话都是这样的:程序员很苦逼,除了会写程序,还得会写博客! 废话说多了...... 嘿嘿:本篇标题为:C#  (事件触发)回调函数,完美处理各类疑难杂症.个人理解如下:事件触发也就是触 ...

  9. 解决jQuery中dbclick事件触发两次click事件

    首先感谢这位小哥!http://qubernet.blog.163.com/blog/static/1779472842011101505853216/ 太长姿势了. 在jQuery事件绑定中,dbc ...

随机推荐

  1. qt 控件 背景色 透明 除去边框

    在调试ui的时候,需要将背景色变为透明,与母控件的颜色一致,并且除去边框. 参考链接: http://www.qtcentre.org/threads/12148-how-QTextEdit-tran ...

  2. 追加文件内容java

    1.向空文件文件中追加内容(如果原来有内容,则覆盖) FileWriter writer; try { writer = new FileWriter(listFile);//创建字符输出流类对象和已 ...

  3. PHP 数组和字符串互相转换实现方法

    $array=explode(separator,$string); $string=implode(glue,$array);

  4. Power-BI 仪表盘实现动态预警

    BI系统中仪表盘“序列”中的“预警”属性可以手工填入固定的值,也可从数据集里取值设定预警范围 ,以实现动态预警.其中的“范围”属性手工输入固定值应该为百分比(0-1),而在下拉选择绑定列为值是为数值. ...

  5. json解析转map

    HashMap<String, Object> map = new HashMap<String, Object>();    JSONObject jsonObject = ...

  6. Java基础——数组Array

    一.数组基本概念 数组是相同类型数据的有序集合. 数组描述的是相同类型的若干个数据,按照一定的先后次序排列组合而成.其中,每一个数据称作一个数组元素,每个数组元素可以通过一个下标来访问它们. 数组有三 ...

  7. Basic认证

    Basic 概述 Basic 认证是HTTP 中非常简单的认证方式,因为简单,所以不是很安全,不过仍然非常常用. 当一个客户端向一个需要认证的HTTP服务器进行数据请求时,如果之前没有认证过,HTTP ...

  8. ios_图片放大的两种方式transform和frame

    frame改变x值y值的方式放大图片,是从左上开始放大. frame改变控件宽高的方式放大图片,是从中心开始放大. 原头像大小 用frame改变宽高 transform方式放大图片,从中心开始放大

  9. docker offical docs:Working with Containers

    enough ---------------------------------------------------------------------------------- Working wi ...

  10. Java基础之处理事件——选项按钮的鼠标监听器(Lottery 2 with mouse listener)

    控制台程序. 定义监听器类有许多方式.下面把监听器类定义为单独的类MouseHandler: // Mouse event handler for a selection button import ...